преобразование tsql getdate - PullRequest
0 голосов
/ 11 июня 2010

Я знаю, что когда я делаю следующее, он конвертирует getdate в int

select cast (getdate() as int)

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

Привет

Manjot

1 Ответ

0 голосов
/ 11 июня 2010

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

SELECT DATEDIFF(day, 0, GETDATE())  

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

SELECT CONVERT(int, CONVERT(binary(4), GETDATE()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...