Java 对sql server smalldatetime的JDBC编码

Java 对sql server smalldatetime的JDBC编码,java,sql-server,jdbc,smalldatetime,Java,Sql Server,Jdbc,Smalldatetime,我正在尝试执行一个存储过程,其中一个参数的类型为smalldatetime。在过去,我总是将datetime2和datetime字段编码为字符串,这样做很好。我在用电话 我在尝试对smalldatetime参数使用string/nvarchar时遇到此错误 Error converting data type nvarchar to smalldatetime. Query: EXEC dg.FooBar ?, ?, ?, ?, ? Parameters: [[123, 1, 2099-01-0

我正在尝试执行一个存储过程,其中一个参数的类型为
smalldatetime
。在过去,我总是将
datetime2
datetime
字段编码为字符串,这样做很好。我在用电话

我在尝试对smalldatetime参数使用string/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]]

非常感谢您的帮助。

smalldatetime支持的日期范围为1900-01-01到2079-06-06

您正试图通过2099-01-01 00:00:00.0,超出范围。

Ah击中头部-我在别处读到头部,因此最大年份为9999,但没有想到要再次检查。谢谢