sql >> Database >  >> RDS >> Sqlserver

System.Data.SqlTypes.SqlTypeException:SqlDateTime overloop

Matt is waarschijnlijk op de goede weg. U heeft een standaardwaarde voor uw kolom gedefinieerd - die wordt echter alleen van kracht als u daadwerkelijk iets in uw tabel in de database invoegt.

Wanneer u een eenheidstest doet, zoals u zegt, initialiseert u hoogstwaarschijnlijk de DateTime-variabele naar iets (of niet - dan is het DateTime.MinValue, dat is 01/01/0001) en dan stuurt u dat naar de SQL Server en deze waarde ligt buiten het geldige bereik voor een DATETIME op SQL Server (zoals de fout duidelijk aangeeft).

Dus wat u moet doen, is een regel toevoegen aan uw .NET-eenheidstest om de DateTime-variabele te initialiseren naar "DateTime.Today":

DateTime myDateTime = DateTime.Today

en voeg dat dan toe aan SQL Server.

OF:u kunt uw SQL INSERT-instructie zo wijzigen dat er geen waarde voor die kolom wordt ingevoegd - het ziet er nu naar uit dat het dat doet (en probeert die - voor SQL Server - ongeldige datum in de tabel in te voegen). Als u die kolom niet opgeeft in uw INSERT, dan is de standaardkolom getdate() begint en voegt de datum van vandaag in de kolom in.

Marc



  1. Een back-up maken van een SQL Server-database met T-SQL

  2. Corrigeer mysql-syntaxisfout bij het maken van een gebruiker

  3. Hoe om te gaan met BLOB en CLOB in olingo v2?

  4. Geen toegewezen Doctrine ORM-entiteiten volgens de huidige configuratie