Anda tidak bisa mendapatkan string kosong karena Anda mengembalikan DATE
tipe nilai dari ISNULL
.
Per MSDN ,ISNULL
Mengembalikan tipe yang sama dengan check_expression. Jika NULL literal disediakan sebagai check_expression, mengembalikan tipe data dari nilai replacement_value. Jika NULL literal disediakan sebagai check_expression dan tidak ada replacement_value disediakan, mengembalikan int.
Jika Anda memeriksa apakah nilainya atau tidak NULL
, tidak perlu mengubahnya menjadi tanggal, kecuali jika Anda ingin mengembalikan nilai tanggal (yang tampaknya tidak Anda lakukan).
Sebaliknya, gunakan:
SELECT ISNULL( DOB , '')
Yang akan kembali
''
jika nilainya NULL
.
Sebuah NULL
saat ini adalah NULL
(tidak ada nilai). Sebuah string kosong, di sisi lain, mengevaluasi 0
, yang dalam SQL Server secara implisit merupakan bilangan bulat yang mewakili jumlah hari sejak itu 1900-01-01
.
NULL
kencan katakanSELECT CAST('' AS DATE)
. Apa tipe data ituDOB
?