sql >> Databasteknik >  >> RDS >> Sqlserver

System.Data.SqlTypes.SqlTypeException:SqlDateTime-spill

Matt är med största sannolikhet på rätt spår. Du har definierat ett standardvärde för din kolumn - men det kommer bara att träda i kraft om du faktiskt infogar något i din tabell i databasen.

När du gör ett enhetstest, som du säger, initialiserar du troligen DateTime-variabeln till något (eller inte - då blir det DateTime.MinValue, vilket är 01/01/0001) och sedan skickar du det till SQL Server och detta värde ligger utanför det giltiga intervallet för en DATETIME på SQL Server (som felet tydligt anger).

Så vad du behöver göra är att lägga till en rad i ditt .NET-enhetstest för att initiera DateTime-variabeln till "DateTime.Today":

DateTime myDateTime = DateTime.Today

och infoga det sedan i SQL Server.

ELLER:du kan ändra din SQL INSERT-sats så att den inte infogar ett värde för den kolumnen - det ser ut som just nu, det gör det (och försöker infoga det - för SQL Server - ogiltigt datum i tabellen). Om du inte anger den kolumnen i din INSERT, då är kolumnstandarden getdate() kommer att slå in och infoga dagens datum i kolumnen.

Marc



  1. Räkna antalet maxvärden för flera datum

  2. Koppla Google Cloud SQL med Wordpress på Google Compute Engine

  3. Hur kan jag ändra denna beräknade kolumn i SQL Server 2008?

  4. Använder BINARY_CHECKSUM(*) med flera tabeller