Документированное значение по умолчанию используется для временных типов, когда указана пустая строка.Обратите внимание:
DECLARE
@datetime datetime = ''
,@smalldatetime smalldatetime = ''
,@datetime2 datetime2 = ''
,@date date = ''
,@time time = ''
,@datetimeoffset datetimeoffset = ''
SELECT
@datetime AS datetime
,@smalldatetime AS smalldatetime
,@datetime2 AS datetime2
,@date AS date
,@time AS time
,@datetimeoffset AS datetimeoffset;
Результат:
+-------------------------+---------------------+-----------------------------+------------+------------------+------------------------------------+
| datetime | smalldatetime | datetime2 | date | time | datetimeoffset |
+-------------------------+---------------------+-----------------------------+------------+------------------+------------------------------------+
| 1900-01-01 00:00:00.000 | 1900-01-01 00:00:00 | 1900-01-01 00:00:00.0000000 | 1900-01-01 | 00:00:00.0000000 | 1900-01-01 00:00:00.0000000 +00:00 |
+-------------------------+---------------------+-----------------------------+------------+------------------+------------------------------------+
Хотя вместо пустой строки иногда используется ноль для обозначения значения по умолчанию, это не разрешено для более новых datetime2
, date
, time
и datetimeoffset
типов.