Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.28;
Скачать: CL | DM;

Вниз

Вопрос по полб DateTime   Найти похожие ветки 

 
alexts ©   (2002-01-30 16:57) [0]

Привет мастерам!!! Подскажите плиз как красиво отделить от поля DateTime дата+часы и дата


 
alexts ©   (2002-01-30 16:59) [1]

Маленькая оговорочка - поле должно остаться datetime или smalldatetime


 
oname   (2002-01-30 17:06) [2]

Целая часть - это дата, дробная - время.


 
Johnmen ©   (2002-01-30 17:10) [3]

var dt, dt1, dt2 : TDateTime;
.....

dt1:=TDateTime(Trunc(dt)); // это дата
dt2:=dt1+<выкусить часы из dt>; // дата+часы


 
Fareader ©   (2002-01-30 17:24) [4]

а если так
var dat_e:Tdate; T_ime:TTime;

....
date:=query1.fieldbyname("dff").asdatetime;
time:=query1.fieldbyname("dff").asdatetime;


 
Belov ©   (2002-01-30 17:39) [5]

есть такая функция DecodeDate


 
alexts ©   (2002-01-30 17:58) [6]

все ок. все варианты хороши но мне надо в запросе sql-ом


 
Johnmen ©   (2002-01-30 18:15) [7]

Попробуй :
SELECT
CAST(f1 AS INT) AS fld1, // дата
(CAST((CAST(f1 AS FLOAT))*24 AS INTEGER))/24) AS fld2
// дата+часы
FROM Table1

возможно работать не будет, но это лишь идея...


 
Roma ©   (2002-01-30 19:10) [8]

В MSSQL есть функция DatePart... См. в BOL...


 
Fay ©   (2002-01-31 16:05) [9]

Если MSSQL то Дата = CONVERT(datetime, CONVERT(int, SUBSTRING(CONVERT(binary(8), <ДатаВремя>), 1, 4))))


 
alexts ©   (2002-01-31 21:34) [10]

2Fay Как насчет даты и часа?


 
TSV ©   (2002-01-31 22:34) [11]

Смотри Roma © (30.01.02 19:10).


 
kig   (2002-01-31 22:39) [12]

Дата

CONVERT(getdate(), CHAR(10), 121) -- в char(10)
CONVERT(getdate(), CONVERT(datetime, CHAR(10), 121)) -- в datetime (time = 00:00:00.000)


Время
SUBSTRING(CONVERT(CHAR(23), getdate(), 121), 11, 13) -- varchar
CONVERT(datetime, SUBSTRING(CONVERT(CHAR(23), getdate(), 121), 11, 13)) -- в datetime - 1900-01-01 + время


 
kig   (2002-01-31 22:47) [13]

Сорри

Дата

Строку
CONVERT(getdate(), CONVERT(datetime, CHAR(10), 121)) -- в datetime (time = 00:00:00.000

заменить на
CONVERT(datetime, CONVERT(datetime, CHAR(10), 121)) -- в datetime (time = 00:00:00.000


 
Fay-1   (2002-02-01 01:15) [14]

2 alexts
Если MSSQL
то Время = CONVERT(datetime, CONVERT(int, SUBSTRING(CONVERT(binary(8), <ДатаВремя>), 5, 4))


 
alexts ©   (2002-02-01 10:11) [15]

Я конечно дико извиняюсь, наверное не умею объяснить. Попробую еще раз:

1. Есть БД MSSQL 7.0
2. Есть таблица Table1
3. Поля в таблице d1 типа datetime и s1 типа numeric (9,2)
4. d1- дата и время чека s1 - сумма чека (например)
5. За период с .. по .. в разрезе по часам получить суммы продаж

Вух :)))

Вроде нормально
Ребята помогите а?


 
TSV ©   (2002-02-01 11:03) [16]


SELECT DATEPART(YEAR, D1) AS "YEAR", DATEPART(MONTH, D1) AS "MONTH", DATEPART(DAY, D1) AS "DAY", DATEPART(HOUR, D1)AS "HOUR", SUM(S1) AS "SUMMA" FROM TABLE1
GROUP BY DATEPART(YEAR, D1), DATEPART(MONTH, D1), DATEPART(DAY, D1), DATEPART(HOUR, D1)

Удачи.


 
panov ©   (2002-02-01 11:08) [17]

>alexts © (01.02.02 10:11)
При создании Topic (создании вопроса) в этой ветке форума, на форме есть кнопочки - для каких БД задается вопрос, и для какой версии Delphi. Если бы был выбран MSSQL, то последний ответ был бы получен сразу.


 
TSV ©   (2002-02-01 11:24) [18]

Просто человек не умеет вопросы задавать. Ему надо было сразу писАть вот так: alexts © (01.02.02 10:11).


 
Fareader ©   (2002-02-01 11:25) [19]

Я не силен в MSSQL, но может попробовать написать свою UDF, чтобы она разрезала DateTime на части, а потом чего-то такое:

select date_func(datetime,date) as dd, date_func(datetime,time) as tt
from ....
where ...

order by 1,2


 
TSV ©   (2002-02-01 11:31) [20]

А зачем велосипед изобретать?
Кроме того, в MSSQL 7 нет UDF. Они появились только в MSSQL 2000.


 
Johnmen ©   (2002-02-01 14:37) [21]

>TSV © : что лишний раз подтверждает мысль об отстойности продуктов от MS (извините, кого обидел)...



Страницы: 1 вся ветка

Текущий архив: 2002.02.28;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.019 c
14-90662
Polevi
2002-01-15 17:46
2002.02.28
Civilization 3


3-90475
Alex_C
2002-02-01 16:46
2002.02.28
Как добавить FieldDefs к существующей базе данных?


3-90514
Alex_C
2002-02-05 12:49
2002.02.28
ОСТОРОЖНО! ВОЗМОЖНО НОВЫЙ ВИРУС!


1-90604
vovan1
2002-02-12 19:23
2002.02.28
Компонент для работы с архиваторами


3-90526
Koks
2002-02-05 17:12
2002.02.28
Передача параметра в запрос.