Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по полб DateTime


Страницы:   1 2

alexts ©   (2002-01-30 16:57:00) 

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


Johnmen   (2002-02-01 14:37:00) [1]

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


TSV   (2002-02-01 11:31:00) [2]

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


Fareader   (2002-02-01 11:25:00) [3]

Я не силен в 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:24:00) [4]

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


panov   (2002-02-01 11:08:00) [5]

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


TSV   (2002-02-01 11:03:00) [6]


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)

Удачи.


alexts   (2002-02-01 10:11:00) [7]

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

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

Вух :)))

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


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

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


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

Сорри

Дата

Строку
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


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

Дата

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 + время


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

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


alexts   (2002-01-31 21:34:00) [12]

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


Fay   (2002-01-31 16:05:00) [13]

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


Roma   (2002-01-30 19:10:00) [14]

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


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

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

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


alexts   (2002-01-30 17:58:00) [16]

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


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

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


Fareader   (2002-01-30 17:24:00) [18]

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

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


Johnmen   (2002-01-30 17:10:00) [19]

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

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


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

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо