Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

System.Data.SqlTypes.SqlTypeException:estouro de SqlDateTime


Matt provavelmente está no caminho certo. Você definiu um valor padrão para sua coluna - no entanto, isso só terá efeito se você realmente inserir algo em sua tabela no banco de dados.

Quando você faz um teste de unidade, como você diz, você provavelmente inicializa a variável DateTime para algo (ou não - então será DateTime.MinValue, que é 01/01/0001) e então você envia isso para o SQL Server e esse valor está fora do intervalo válido para um DATETIME no SQL Server (como o erro indica claramente).

Então, o que você precisa fazer é adicionar uma linha ao seu teste de unidade .NET para inicializar a variável DateTime para "DateTime.Today":
DateTime myDateTime = DateTime.Today

e, em seguida, insira-o no SQL Server.

OU:você pode alterar sua instrução SQL INSERT para que ela não insira um valor para essa coluna - parece que agora, ele faz isso (e tenta inserir essa - para SQL Server - data inválida na tabela). Se você não especificar essa coluna em seu INSERT, a coluna padrão de getdate() entrará em ação e inserirá a data de hoje na coluna.

Marco