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

Вниз

Проблема с датой   Найти похожие ветки 

 
VadimSpb   (2006-07-31 08:03) [0]

Добрый день!
Делаю запрос
INSERT INTO Table1 (Data) SELECT 38929
В MSSQL при просмотре таблицы это число является датой 02.08.2006 0:00:00
Если DateTimePicker.Date := 38929, то получаем 31 июля 2006.
Почему получается "временной перекресток"?


 
Fay ©   (2006-07-31 08:30) [1]

патамушта ты лапух
P.S.
select cast(0 as datetime)
ShowMessage(DateToStr(0))


 
sniknik ©   (2006-07-31 08:35) [2]

точка отсчета у дат в дельфи и в mssql различается. и не только у них, потому даты числами(тип) передавать не стоит, а при передаче датой делается коррекция.


 
Ega23 ©   (2006-07-31 09:33) [3]

В MSSQL точкой отсчёта (0) является 01.01.1900, а у Борланда - 30.12.1899


 
sniknik ©   (2006-07-31 10:44) [4]

> а у Борланда - 30.12.1899
не только у него, проверь при конекте к mdb (jet) - SELECT CDate(0)
хотя это вроде бы тоже мелкософт как и mssql. т.е. это не признак компании типа у одной одно у другой свой формат, а просто какаято историческая необходимость ... для accecc возможно потому как он вроде как замена парадоксу, а парадокс имел такой. борланд тоже может не сам решил, "давайте у нас на два дня отличатся будет", а получил в наследство от тех у кого парадокс купил, ну а дальше пошло "по накатаной".
а может наоборот, mssql в мелкософте решили "отличить"... в общем факт отличия есть, а вот почему...  но не признак компании точно.


 
Ega23 ©   (2006-07-31 10:53) [5]

Короче, пользуйтесь параметрами...   :о)


 
Desdechado ©   (2006-07-31 11:28) [6]

Точки отсчета пошли, имхо, от способа хранения дат в файловых системах разных операционок.


 
sniknik ©   (2006-07-31 12:42) [7]

> Короче, пользуйтесь параметрами...   :о)
воистину!

> от способа хранения дат в файловых системах разных операционок.
см. выше mssql & access операционка в которой "родились" одна, точка отсчета разная.

просто чтоб не парится, обьяснение - "так исторически сложилось...", и все. ;)


 
VadimSpb   (2006-07-31 14:02) [8]

Спасибо, предположение подтвердилось.
Параметры использовать неудобно, т.к. запрос формируется динамически.


 
Max Zyuzin ©   (2006-07-31 14:10) [9]

>VadimSpb   (31.07.06 14:02) [8]
Это почему неудобно? Параметры использовать очень правильно и очень даже нужно...


 
Fay ©   (2006-07-31 14:20) [10]

2 Max Zyuzin ©   (31.07.06 14:10) [9]
> очень даже нужно...
Для запросов, которые препарятся 1 раз, смысла не очень много...


 
VadimSpb   (2006-07-31 14:37) [11]

Никто не спорит о пользе параметров. В моем конкретном случае это неудобно, использую другое решение, т.к. запрос может содержать неизвестное количество дат.
Всем спасибо.


 
Stanislav ©   (2006-07-31 14:51) [12]

Всегда правильный формат даты: 20060727 (yyyymmdd)


 
Anatoly Podgoretsky ©   (2006-07-31 19:55) [13]

Fay ©   (31.07.06 14:20) [10]
Смысла может быть и не много, точнее смысла без параметров совсем мало, разве что в очередной раз на грабли наступить.


 
Anatoly Podgoretsky ©   (2006-07-31 19:56) [14]

VadimSpb   (31.07.06 14:37) [11]
Неужели неизвестное количество дат представляет хоть какую то сложность, да и думаю, что не такое уж и неизвестное, как бы ты тогда запрос постороил?


 
VadimSpb   (2006-07-31 20:01) [15]

Согласен :-))
Уже так и сделал.



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

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

Наверх




Память: 0.5 MB
Время: 0.054 c
15-1157895357
wwwrr
2006-09-10 17:35
2006.10.01
Кто перевидёт...???


3-1154007138
DelphiLexx
2006-07-27 17:32
2006.10.01
TFibDataSet обмирает OnSetText


15-1157716569
Руслан
2006-09-08 15:56
2006.10.01
Запуск *.bat - файла с помощью планировщика


2-1157482940
Vovan#1
2006-09-05 23:02
2006.10.01
Open Folder


2-1158241751
megasecure
2006-09-14 17:49
2006.10.01
Индексы в MSSQL