Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

System.Data.SqlTypes.SqlTypeException:SqlDateTime tràn

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo tệp XML từ SQL Server 2008

  2. SQL Server - Khi nào sử dụng Clustered và non-Clustered Index?

  3. thuộc loại không hợp lệ để sử dụng làm cột khóa trong chỉ mục

  4. Truy vấn cực kỳ chậm trong mã nhưng nhanh trong SSMS

  5. Cách nhận giá trị từ bước1 đến bước2 trong Công việc sql