sql >> Database teknologi >  >> RDS >> Sqlserver

System.Data.SqlTypes.SqlTypeException:SqlDateTime-overløb

Matt er højst sandsynligt på rette vej. Du har defineret en standardværdi for din kolonne - den vil dog kun træde i kraft, hvis du rent faktisk indsætter noget i din tabel i databasen.

Når du laver en enhedstest, som du siger, initialiserer du højst sandsynligt DateTime-variablen til noget (eller ej - så bliver det DateTime.MinValue, som er 01/01/0001), og så sender du det til SQL Serveren og denne værdi er uden for det gyldige interval for en DATETIME på SQL Server (som fejlen tydeligt angiver).

Så hvad du skal gøre er at tilføje en linje til din .NET-enhedstest for at initialisere DateTime-variablen til "DateTime.Today":

DateTime myDateTime = DateTime.Today

og indsæt det derefter i SQL Server.

ELLER:du kan ændre din SQL INSERT-sætning, så den ikke indsætter en værdi for den kolonne - det ser ud til lige nu, den gør det (og forsøger at indsætte den - for SQL Server - ugyldig dato i tabellen). Hvis du ikke angiver den kolonne i din INSERT, så er kolonnens standardværdi for getdate() vil sparke ind og indsætte dagens dato i kolonnen.

Marc



  1. SQL Server Internals:Plan Caching Pt. II – Genkompilering af planer

  2. JProgressBar opdaterer ikke, kan ikke finde en anelse

  3. postgresql:.pgpass virker ikke

  4. Er det muligt at ændre systemets lagrede procedure?