To dlatego, że pusty ciąg ''
nie jest NULL
. Jeśli tak:
select Cast(null AS datetime)
WYJŚCIE:
-----------------------
NULL
(1 row(s) affected)
PRZESYŁANIE i KONWERTOWANIE (Transact-SQL)
Gdy dane znakowe reprezentujące tylko datę lub tylko składniki czasu są przesyłane do data-godzina lub smalldatetime typów danych, nieokreślony składnik czasu jest ustawiony na 00:00:00.000, a nieokreślony składnik daty jest ustawiony na 1900-01-01.