Главная страница
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.01 c
1-90567
SynteZZZ
2002-02-10 23:09
2002.02.28
Как сравнить 2 картинки?


1-90589
Alexandr
2002-02-12 13:27
2002.02.28
Фреймы


3-90508
OLEG_Hr
2002-02-04 14:37
2002.02.28
Array and DBGrid (IB6)


3-90486
Basil
2002-02-04 11:02
2002.02.28
Как создать базу данных


7-90691
Fredericco
2001-11-24 00:38
2002.02.28
При печати получаю exeption :-(((