Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-90543
Demon ltd
2002-02-10 00:27
2002.02.28
Работа с Memo


3-90462
Vacheslav
2002-02-01 17:44
2002.02.28
Такая проблемма


1-90591
Dumitru
2002-02-12 11:03
2002.02.28
Delphi 6 Update


7-90685
REL
2001-11-22 18:49
2002.02.28
AT команды


4-90705
cher_gvf
2001-12-03 17:33
2002.02.28
Как послать сообщение по сети определенным юзерам?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский