JDBC 编码到 sql 服务器 smalldatetime
JDBC encoding to sql server smalldatetime
我正在尝试执行其中一个参数类型为 smalldatetime
的存储过程。过去,我总是将 datetime2
和 datetime
字段编码为字符串,并且效果很好。我正在使用 Microsoft JDBC Driver
我在尝试对 smalldatetime 参数使用 string/nvarchar 时遇到此错误。
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
class。将我的 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
https://docs.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql
您正试图通过 2099-01-01 00:00:00.0,它超出了范围。
我正在尝试执行其中一个参数类型为 smalldatetime
的存储过程。过去,我总是将 datetime2
和 datetime
字段编码为字符串,并且效果很好。我正在使用 Microsoft JDBC Driver
我在尝试对 smalldatetime 参数使用 string/nvarchar 时遇到此错误。
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
class。将我的 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
https://docs.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql
您正试图通过 2099-01-01 00:00:00.0,它超出了范围。