2012-04-12 25 views
4

prepareStatementでto_dateを使用してoracleデータベースに日付を入力しようとしていますが、エラーが発生しています。preparedStatementでoracleのto_dateを使用

コードフラグメント:2012-01-01 12時00分00秒

エラー:

[Oracle][ODBC][Ora]ORA-01861: literal does not match format string 

してくださいアドバイス

sql = "select Identifier from metadata where content_cdate >=to_date(?,'dd-mm-yyyy') and content_cdate < to_date(?,'dd-mm-yyyy') and status='published' and content_mdate is null"; 

ps.setString(1, commonUtil.dateToString(startTime)); 

dateToString方法は次のように値を返します。

答えて

7

あなたの入力に合わせて正しいTO_DATE形式のマスクを使用する必要があります。 dBでTO_DATE(?,'YYYY-MM-DD HH24:MI:SS')

+0

DD-MM-yyyy形式で保存された日付:最も可能性の高いあなたのケースでは

。この変更は他のエラーの原因になりますか? –

+0

'dd-mm-yyyy'形式で保存されているとはどういう意味ですか? 'VARCHAR2'として?それが日付型の1つであれば、内部表現に格納され、 'NLS_DATE_FORMAT'に従って表示されます。 – Anonymous

+0

このようなエラーが表示されます。[Oracle] [ODBC] [Ora] ORA-01810:フォーマットコードが2回表示されます。 –

関連する問題