#sql-server #sql-server-2005 #casting
#sql-сервер #sql-server-2005 #Кастинг
Вопрос:
У меня есть несколько отрицательных целых значений, которые являются смещением от даты по умолчанию 1-1-1900. Я должен получить значения datetime из этих. Как я могу это сделать.
Пример:
Если я сделаю:
SELECT convert(datetime, 53691) as Calc
OR
SELECT cast(53691 as datetime)
Я получаю: 2047-01-01 00:00:00.000
Что мне нужно, так это то, что если я сделаю:
SELECT convert(datetime, -53691) as Calc
OR
SELECT cast(-53691 as datetime)
Я должен получить что-то вроде:
1753-01-01 00:00:00.000
Ответ №1:
-53690 будет равно 1753-01-01. -53691 выводит вас за пределы диапазона типа данных datetime (который не поддерживает даты до 1753). Приведение -53690 работает так же, как и в других ваших примерах.