Itu karena string kosong ''
bukan NULL
. Jika Anda melakukannya:
select Cast(null AS datetime)
KELUARAN:
-----------------------
NULL
(1 row(s) affected)
CAST dan CONVERT (Transact-SQL)
Ketika data karakter yang hanya mewakili tanggal atau hanya komponen waktu dilemparkan ke waktu-tanggal atau waktu kecil tipe data, komponen waktu yang tidak ditentukan diatur ke 00:00:00.000, dan komponen tanggal yang tidak ditentukan diatur ke 1900-01-01.