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

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

Проблема с датой [MSSQL]


VadimSpb ©   (2006-07-31 08:03:00) 

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


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

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


Anatoly Podgoretsky   (2006-07-31 19:56:00) [2]

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


Anatoly Podgoretsky   (2006-07-31 19:55:00) [3]

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


Stanislav   (2006-07-31 14:51:00) [4]

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


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

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


Fay   (2006-07-31 14:20:00) [6]

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


Max Zyuzin   (2006-07-31 14:10:00) [7]

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


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

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


sniknik   (2006-07-31 12:42:00) [9]

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

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

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


Desdechado   (2006-07-31 11:28:00) [10]

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


Ega23   (2006-07-31 10:53:00) [11]

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


sniknik   (2006-07-31 10:44:00) [12]

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


Ega23   (2006-07-31 09:33:00) [13]

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


sniknik   (2006-07-31 08:35:00) [14]

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


Fay   (2006-07-31 08:30:00) [15]

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


Наверх

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