2010-06-11 2 views
0

Я знаю, что когда я делаю следующее, он преобразует GETDATE в целоеTSQL преобразование GETDATE

select cast (getdate() as int) 

GetDate выход на моем сервере «2010-06-11 14: 42: 20.100» и ИНТ, к которому приведенная выше команда преобразуется в значение 40339. Что это за целое число? Разве это считало минуты и секунд? я запутался. Пожалуйста помоги.

С уважением

Manjot

ответ

0

Это число является количество дней, прошедших с даты отсчета, которая является 01.01.1900. Вы должны получить тот же результат с:

SELECT DATEDIFF(day, 0, GETDATE()) 

Внутри SQL хранит DateTimes как два 4-байтовых целых чисел. Первое целое число (которое вы получаете в своем заявлении) представляет собой количество дней с даты ссылки. Второе целое число представляет собой число 1/300 вторых интервалов с полуночи. Вы можете найти второе целое число, преобразовывая сначала в двоичный, затем в int:

SELECT CONVERT(int, CONVERT(binary(4), GETDATE())) 
+0

большое спасибо. – Manjot

Смежные вопросы