1

我正在尝试执行一个存储过程,其中一个参数是 type smalldatetime。在过去,我总是将字段编码为字符串datetime2datetime效果很好。我正在使用Microsoft JDBC 驱动程序

尝试对 smalldatetime 参数使用字符串/nvarchar 时出现此错误。

Error converting data type nvarchar to smalldatetime. Query: EXEC dg.FooBar ?, ?, ?, ?, ? Parameters: [[123, 1, 2099-01-01, 1, DG TEST]]

查看它建议使用该类的微软文档。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]]

任何帮助表示赞赏。

4

1 回答 1

2

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。

于 2017-07-19T18:05:53.240 回答