Anda tidak bisa mendapatkan string kosong karena Anda mengembalikan DATEtipe 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 NULLsaat 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.
NULLkencan katakanSELECT CAST('' AS DATE). Apa tipe data ituDOB?