Я использовал этот формат в течение многих лет укоротить даты и времяУсечения даты + времени использования Datetime2
SELECT DATEADD(HOUR, DATEDIFF(HOUR, 0, '1980-02-05 12:45'), 0) AS Hour ,
DATEADD(DAY, DATEDIFF(DAY, 0, '1980-02-05 12:45'), 0) AS Day ,
DATEADD(MONTH, DATEDIFF(MONTH, 0, '1980-02-05 12:45'), 0) AS Month ,
DATEADD(YEAR, DATEDIFF(YEAR, 0, '1980-02-05 12:45'), 0) AS Year;
Но у меня есть необходимость хранить очень ранние сроки, как 1400-01-01
и поэтому я могу использовать DateTime2
.
Но как бы я поддерживал способность по-прежнему усекать, как показано выше, используя DateTime2
?
Изменение год выше 1400
от 1980
будет приводить к
SELECT DATEADD(HOUR, DATEDIFF(HOUR, 0, '1400-02-05 12:45'), 0) AS Hour ,
DATEADD(DAY, DATEDIFF(DAY, 0, '1400-02-05 12:45'), 0) AS Day ,
DATEADD(MONTH, DATEDIFF(MONTH, 0, '1400-02-05 12:45'), 0) AS Month ,
DATEADD(YEAR, DATEDIFF(YEAR, 0, '1400-02-05 12:45'), 0) AS Year;
Преобразование типа данных VARCHAR к типу DateTime данных привело в значении вне-диапазона.
ТАК литье до DateTime2
SELECT DATEADD(HOUR, DATEDIFF(HOUR, 0, CAST('1400-02-05 12:45' AS DATETIME2)),0) AS Hour ,
DATEADD(DAY, DATEDIFF(DAY, 0, CAST('1400-02-05 12:45' AS DATETIME2)),0) AS Day ,
DATEADD(MONTH, DATEDIFF(MONTH, 0, CAST('1400-02-05 12:45' AS DATETIME2)), 0) AS Month ,
DATEADD(YEAR, DATEDIFF(YEAR, 0, CAST('1400-02-05 12:45' AS DATETIME2)), 0) AS Year;
превращения типа datetime2 данных в тип данных даты и времени привело к значению вне-диапазона.
Я предполагаю, что 0
в настоящее время рассматривается как тип DateTime
данных и effectly приведения его в DateTime
.
Пытаясь забрасывать 0
к DateTime2
с помощью CAST(0 AS DATETIME2)
дает мне эту ошибку
Явное преобразование типа данных междунар в datetime2 не допускается.
В конце концов я желающий использовать их как сохранялся столбцы в таблице, которые работали отлично с DateTime
типов данных, но не так просто с DateTime2
Совет. Полезно пометить вопросы базы данных как с помощью соответствующего программного обеспечения (MySQL, Oracle, DB2, ...) и версии, например. 'SQL-сервер-2014'. Различия в синтаксисе и особенностях часто влияют на ответы, например. [ 'DateFromParts'] (https://msdn.microsoft.com/en-us/library/hh213228.aspx). – HABO