DateTime
di C# adalah tipe nilai, bukan tipe referensi, dan karenanya tidak boleh nol. Namun itu bisa berupa DateTime.MinValue
yang konstan yang berada di luar jangkauan Server Sql DATETIME
tipe data.
Jenis nilai dijamin selalu memiliki nilai (default) (nol) tanpa harus selalu ditetapkan secara eksplisit (dalam hal ini DateTime.MinValue).
Kesimpulannya adalah Anda mungkin memiliki nilai DateTime yang tidak disetel yang Anda coba berikan ke database.
DateTime.MinValue = 1/1/0001 12:00:00 AM
DateTime.MaxValue = 23:59:59.9999999, December 31, 9999,
exactly one 100-nanosecond tick
before 00:00:00, January 1, 10000
MSDN:DateTime.MinValue
Mengenai Sql Server
MSDN:Sql Server DateTime dan SmallDateTime
Terakhir, jika Anda melewati C# DateTime
sebagai string ke sql, Anda perlu memformatnya sebagai berikut untuk mempertahankan presisi maksimum dan untuk mencegah sql server membuat kesalahan serupa.
string sqlTimeAsString = myDateTime.ToString("yyyy-MM-ddTHH:mm:ss.fff");
Pembaruan (8 tahun kemudian)
Pertimbangkan untuk menggunakan sql DateTime2
tipe data yang lebih cocok dengan .net DateTime
dengan rentang tanggal 0001-01-01 through 9999-12-31
dan rentang waktu 00:00:00 through 23:59:59.9999999
string dateTime2String = myDateTime.ToString("yyyy-MM-ddTHH:mm:ss.fffffff");