Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

System.Data.SqlTypes.SqlTypeException:препълване на SqlDateTime

Мат най-вероятно е на прав път. Вие сте дефинирали стойност по подразбиране за вашата колона - това обаче ще влезе в сила само ако наистина вмъкнете нещо във вашата таблица в базата данни.

Когато правите единичен тест, както казвате, най-вероятно инициализирате променливата DateTime с нещо (или не - тогава ще бъде DateTime.MinValue, което е 01/01/0001) и след това изпращате това на SQL Server и тази стойност е извън валидния диапазон за DATETIME на SQL Server (както грешката ясно посочва).

Така че това, което трябва да направите, е да добавите ред към вашия .NET единицен тест, за да инициализирате променливата DateTime на „DateTime.Today“:

DateTime myDateTime = DateTime.Today

и след това го вмъкнете в SQL Server.

ИЛИ:можете да промените оператора си SQL INSERT, така че да не вмъква стойност за тази колона - изглежда, че в момента прави това (и се опитва да вмъкне това - за SQL Server - невалидна дата в таблицата). Ако не посочите тази колона във вашия INSERT, тогава колоната по подразбиране е getdate() ще започне и ще вмъкне днешната дата в колоната.

Марк



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свържете различен потребител на Windows в SQL Server Management Studio (2005 или по-нова версия)

  2. острови и пропуски tsql

  3. Как да деактивирате всички тригери в базата данни на SQL Server

  4. Как мога да заключа един ред в SQL Server по начин, подобен на SELECT FOR UPDATE WAIT на Oracle?

  5. Как да покажете заявка и резултати в отделен раздел в SQL Server Management Studio (SSMS) - SQL Server / TSQL урок, част 15