Форум: "Базы";
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];
ВнизВопрос по полб 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c