sql >> Base de Datos >  >> RDS >> Sqlserver

System.Data.SqlTypes.SqlTypeException:desbordamiento de SqlDateTime

Lo más probable es que Matt esté en el camino correcto. Ha definido un valor predeterminado para su columna; sin embargo, eso solo tendrá efecto si realmente inserta algo en su tabla en la base de datos.

Cuando realiza una prueba unitaria, como dice, lo más probable es que inicialice la variable DateTime en algo (o no, entonces será DateTime.MinValue, que es 01/01/0001) y luego lo envía a SQL Server y este valor está fuera del rango válido para DATETIME en SQL Server (como indica claramente el error).

Entonces, lo que debe hacer es agregar una línea a su prueba de unidad .NET para inicializar la variable DateTime a "DateTime.Today":

DateTime myDateTime = DateTime.Today

y luego inserte eso en SQL Server.

O:puede cambiar su instrucción SQL INSERT para que no inserte un valor para esa columna; parece que en este momento lo hace (e intenta insertar eso, para SQL Server, fecha no válida en la tabla). Si no especifica esa columna en su INSERT, entonces la columna predeterminada de getdate() se activará e insertará la fecha de hoy en la columna.

Marc