我正在尝试执行一个存储过程,其中一个参数的类型为smalldatetime。在过去,我总是将datetime2和datetime字段编码为字符串,这样做效果很好。我正在使用Microsoft JDBC Driver
在尝试使用字符串/nvarchar作为smalldatetime参数时,我遇到了此错误。
Error converting data type nvarchar to smalldatetime. Query: EXEC dg.FooBar ?, ?, ?, ?, ? Parameters: [[123, 1, 2099-01-01, 1, DG TEST]]看看microsoft documentation,它建议使用java.sql.Timestamp类。将我的java代码更改为Timestamp.valueOf(LocalDate.of(2099, 1, 1).atStartOfDay()),我得到了一个类似的错误。
Error converting data type datetime2 to smalldatetime. Query: EXEC dg.FooBar ?, ?, ?, ?, ? Parameters: [[123, 1, 2099-01-01 00:00:00.0, 1, DG TEST]]任何帮助都是非常感谢的。
发布于 2017-07-20 02:05:53
smalldatetime支持的日期范围是1900-01-01到2079-06-06
https://docs.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql
您正在尝试通过超出范围的2099-01-01 00:00:00.0。
https://stackoverflow.com/questions/45197841
复制相似问题