2017-07-19 7 views
1

パラメータの1つがsmalldatetimeのストアドプロシージャを実行しようとしています。過去に私は常にdatetime2datetimeフィールドを文字列としてエンコードしていましたが、うまくいきました。私は使用していますMicrosoft JDBC DriverSQLサーバーsmalldatetimeへのJDBCエンコーディング

smalldatetimeパラメータに文字列/ nvarcharを使用しようとすると、このエラーが発生します。

それは java.sql.Timestampクラスを使用することを提案 microsoft documentationを見てみると
Error converting data type nvarchar to smalldatetime. Query: EXEC dg.FooBar ?, ?, ?, ?, ? Parameters: [[123, 1, 2099-01-01, 1, DG TEST]] 

。 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]] 

助けてください。 00::00.0、アウトです

答えて

2

smalldatetime型でサポートされている日付範囲が1900-01-01

2079年6月6日を通して

https://docs.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql

であるあなたは、2099年1月1日00をパスしようとしています範囲の。

+0

Ah * smacks head * - 私は最大年が9999であったことをSOの他の場所で読んでいますが、それを再確認することは考えていませんでした。ありがとう! –

関連する問題