Det beror på att tom sträng ''
är inte NULL
. Om du gör det:
select Cast(null AS datetime)
UTGÅNG:
-----------------------
NULL
(1 row(s) affected)
CAST och KONVERTERA (Transact-SQL)
När teckendata som endast representerar datum eller endast tidskomponenter sänds till datetime eller smalldatetime datatyper är den ospecificerade tidskomponenten inställd på 00:00:00.000 och den ospecificerade datumkomponenten är inställd på 1900-01-01.