Đó là vì chuỗi trống ''
không phải là NULL
. Nếu bạn làm như vậy:
select Cast(null AS datetime)
ĐẦU RA:
-----------------------
NULL
(1 row(s) affected)
CAST và CHUYỂN ĐỔI (Transact-SQL)
Khi dữ liệu ký tự chỉ đại diện cho các thành phần ngày tháng hoặc chỉ thời gian được truyền tới datetime hoặc smalldatetime kiểu dữ liệu, thành phần thời gian không xác định được đặt thành 00:00:00.000 và thành phần ngày không xác định được đặt thành 1900-01-01.