0

タイムスタンプ形式 [DD-MON-RR HH.MI.SSXFF AM] を使用して日付を挿入しようとしています。

とにかく可能な限りデータベース設定を変更することはできず、日付を Java の文字列形式で挿入する必要があります (それを定義したクラスも変更できません)。

そうは言っても、他のクラス/データベースを調整することなく、文字通り文字列ごとにフォーマットを再構築する必要があります。

日付の nls 設定は DD-MON-RR です。2012 年 6 月 12 日と 2012 年 6 月 12 日は問題なく動作しました。

しかし、日付のタイムスタンプ部分を再現するのは難しいと思います。

以下に、私が試したいくつかの形式を示します。

'12-JAN-12' < success
'12/JAN/2012' < success
'12/JAN/2012 10.30.25.000 AM < failed
'12/JAN/2012 10:30:25.000 AM < failed

: または . を台無しにしましたか? または、ゼロはミリ秒に十分ではありませんでしたか? 何時間もこの問題に悩まされています。

前もって感謝します。

EDIT

数回の推論セッションの後、シニアはモデルクラスを変更する許可を与えました。今はすべて順調です。助けと提案をありがとう。

4

1 に答える 1

1

文字列を DB に送信する必要があるため、Oracle DB から DATE 型への暗黙的な変換に依存する必要があります。
DB 設定を変更することはできないため、私が提案できる唯一のことは、セッション設定を変更することです。
したがって、DB に対してコマンドを実行できる場合は、次を試してください。

Statement st = conn.createStatement();
st.execute("alter session set NLS_DATE_FORMAT='dd/mm/yyyy hh24:mi:ss'");    

(または他の形式(monあなたの形式で使用することはお勧めしませNLS_TERRITORYん)

于 2012-06-07T09:50:33.737 に答える