Matt rất có thể đang đi đúng hướng. Bạn đã xác định một giá trị mặc định cho cột của mình - tuy nhiên, điều đó sẽ chỉ có hiệu lực nếu bạn thực sự chèn một cái gì đó vào bảng của mình trong cơ sở dữ liệu.
Khi bạn thực hiện kiểm tra đơn vị, như bạn nói, bạn rất có thể khởi tạo biến DateTime thành một thứ gì đó (hoặc không - thì nó sẽ là DateTime.MinValue, là 01/01/0001) và sau đó bạn gửi biến đó đến SQL Server và giá trị này nằm ngoài phạm vi hợp lệ cho DATETIME trên SQL Server (như lỗi đã nêu rõ).
Vì vậy, những gì bạn cần làm là thêm một dòng vào kiểm tra đơn vị .NET của bạn để khởi tạo biến DateTime thành "DateTime.Today":
DateTime myDateTime = DateTime.Today
và sau đó chèn nó vào SQL Server.
HOẶC:bạn có thể thay đổi câu lệnh SQL INSERT của mình để nó không chèn giá trị cho cột đó - có vẻ như ngay bây giờ, nó thực hiện điều đó (và cố gắng chèn điều đó - đối với SQL Server - ngày không hợp lệ vào bảng). Nếu bạn không chỉ định cột đó trong INSERT của mình, thì cột mặc định của getdate()
sẽ bắt đầu và chèn ngày hôm nay vào cột.
Marc