Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

System.Data.SqlTypes.SqlTypeException:przepełnienie SqlDateTime

Matt jest najprawdopodobniej na dobrej drodze. Zdefiniowałeś domyślną wartość dla swojej kolumny - jednak będzie to obowiązywać tylko wtedy, gdy faktycznie wstawisz coś do swojej tabeli w bazie danych.

Kiedy robisz test jednostkowy, jak mówisz, najprawdopodobniej inicjujesz zmienną DateTime do czegoś (lub nie - wtedy będzie to DateTime.MinValue, czyli 01/01/0001), a następnie wysyłasz to do SQL Server a ta wartość jest poza poprawnym zakresem dla DATETIME na SQL Server (jak wyraźnie stwierdza błąd).

Musisz więc dodać wiersz do testu jednostkowego .NET, aby zainicjować zmienną DateTime na „DateTime.Today”:

DateTime myDateTime = DateTime.Today

a następnie wstaw go do SQL Server.

LUB:możesz zmienić swoją instrukcję SQL INSERT tak, aby nie wstawiała wartości dla tej kolumny - wygląda na to, że teraz to robi (i próbuje wstawić tę - dla SQL Server - nieprawidłową datę do tabeli). Jeśli nie określisz tej kolumny w INSERT, domyślna kolumna to getdate() uruchomi się i wstawi dzisiejszą datę do kolumny.

Marek



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Próbkowanie losowe z dużego zbioru danych

  2. Zwróć nazwę bieżącej stacji roboczej, która jest połączona z programem SQL Server (T-SQL)

  3. Jak obliczyć bieganie mnożenia

  4. 2 sposoby na uzyskanie informacji o partycjach dla tabeli w SQL Server (T-SQL)

  5. Spróbuj utworzyć tabelę z Select - SQL Server 2008 zgłasza błąd