Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нулевые значения форматов дат datetime и smalldatetime  [new]
Bryk_Alien
Guest
На заре своего общения с SQL сервером (SQL 2000 на тот момент) я помню вляпался в неприятную историю из-за того что нулевые форматы значения дат этих двух разных форматов, были нифига не одинаковыми, а '30.12.1899' и '01.01.1900'. Уж не помню какой формат что выдавал.
На фоне этого у меня сложилась лёгкая фобия преобразования числовых форматов в datetime|smalldatetime.
Однако SQL 2008 мне выдал следующее:
DECLARE @DT AS datetime
DECLARE @SDT AS smalldatetime

SET @DT = 0
SET @SDT = 0

SELECT 	@DT, @SDT
SELECT 	CAST(@SDT AS datetime), CAST(@DT AS smalldatetime)
SELECT 	CAST(0 AS datetime), CAST(0 AS smalldatetime)
SELECT 	CAST('' as DATETIME), CAST('' as smalldatetime)

----------------------- -----------------------
1900-01-01 00:00:00.000 1900-01-01 00:00:00
(строк обработано: 1)
----------------------- -----------------------
1900-01-01 00:00:00.000 1900-01-01 00:00:00
(строк обработано: 1)
----------------------- -----------------------
1900-01-01 00:00:00.000 1900-01-01 00:00:00
(строк обработано: 1)
----------------------- -----------------------
1900-01-01 00:00:00.000 1900-01-01 00:00:00
(строк обработано: 1)

То есть, нулевые значения у них, оказывается, одинаковые? 0_о
Что это? Другая настройка для SQL сервера? Изменения в более старшей версии? Или я жестоко ошибался всё это время?
29 янв 15, 13:47    [17189149]     Ответить | Цитировать Сообщить модератору
 Re: Нулевые значения форматов дат datetime и smalldatetime  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bryk_Alien
я помню вляпался в неприятную историю из-за того что нулевые форматы значения дат этих двух разных форматов были нифига не одинаковыми, а '30.12.1899' и '01.01.1900'. Уж не помню какой формат что выдавал.

Вы путаете MSSQL и Access(Delphi)
29 янв 15, 13:50    [17189177]     Ответить | Цитировать Сообщить модератору
 Re: Нулевые значения форматов дат datetime и smalldatetime  [new]
Bryk_Alien
Guest
Glory
Bryk_Alien
я помню вляпался в неприятную историю из-за того что нулевые форматы значения дат этих двух разных форматов были нифига не одинаковыми, а '30.12.1899' и '01.01.1900'. Уж не помню какой формат что выдавал.

Вы путаете MSSQL и Access(Delphi)
Да :( Скорее всего...
В Аксе Cdate(2) = 01.01.1900
29 янв 15, 13:52    [17189193]     Ответить | Цитировать Сообщить модератору
 Re: Нулевые значения форматов дат datetime и smalldatetime  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bryk_Alien
Glory
пропущено...

Вы путаете MSSQL и Access(Delphi)
Да :( Скорее всего...
В Аксе Cdate(2) = 01.01.1900

Ну может не Access или не последний Access, а какой нибудь Excel - в общем какое-то _другое_ приложение
29 янв 15, 13:55    [17189210]     Ответить | Цитировать Сообщить модератору
 Re: Нулевые значения форматов дат datetime и smalldatetime  [new]
iap
Member

Откуда: Москва
Сообщений: 47065
Glory
Bryk_Alien
я помню вляпался в неприятную историю из-за того что нулевые форматы значения дат этих двух разных форматов были нифига не одинаковыми, а '30.12.1899' и '01.01.1900'. Уж не помню какой формат что выдавал.

Вы путаете MSSQL и Access(Delphi)
В Дельфи нулевая дата - '18991230'
29 янв 15, 14:43    [17189572]     Ответить | Цитировать Сообщить модератору
 Re: Нулевые значения форматов дат datetime и smalldatetime  [new]
iap
Member

Откуда: Москва
Сообщений: 47065
Bryk_Alien
На заре своего общения с SQL сервером (SQL 2000 на тот момент) я помню вляпался в неприятную историю из-за того что нулевые форматы значения дат этих двух разных форматов, были нифига не одинаковыми, а '30.12.1899' и '01.01.1900'.
Это неправда.
Могу утверждать, ибо имел дело со всеми версиями, начиная с 6.5
29 янв 15, 14:44    [17189585]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить