私はMongoとOracle 12cを同時に使用しています。ISO DATEをJavaまたはSQLでタイムスタンプに変換する方法は?
MongoDBの場合、私はISO DATE
を使用していますが(Stringのように)、日付を保持しています。このように:
{
"_id" : null,
"fields" : {
"Status" : "UnderInvestigation",
"Assignee" : "",
"CreationDate" : "2016-12-14T00:00:00Z", //ISO DATE
"CaseId" : "8165021",
"RunningMode" : "STS",
"CloserDueDate" : ""
},
"domain" : {},
"arrays" : {}
}
私は、同じ名前の列は、Oracleにタイムスタンプのフォーマットタイプを使用したいので、アイデアは、タイムスタンプにその日付を変換です。
私はそれを行う方法がわかりません。私は、次のコードがありますが、動作しません。
final String query = "INSERT INTO " + TABLE_APPLICATION + " (CreationDate) VALUES (TO_DATE(?,'YYYY-MM-DD HH24:MI:SS'))" ;
PreparedStatement ps = getPreparedStatement();
((OraclePreparedStatement) ps).setString(1, getValueFromJson(JSON, 'fields.CreationDate'));
しかし、私が得た:
java.sql.SQLDataException:ORA-01861:エルは何の一致をリテラルない詐欺ラ・カデナ・デ・フォーマト
問題は何ですか?
[このようなOracle](http://stackoverflow.com/a/28211019/266304);タイトルはあなたがJavaでやりたがっていると言っています。本当に意味がありますか?また、どのデータ型が列であり、UTCの値を現地時間に変換する予定ですか?日付で、調整したくない場合は、 'to_date()'と同じ書式マスクを使用できますが、それは厳密に正しいとは限りません。 –
'getFieldFromJson'メソッドでコードがどのように設定されていますか? Mongo javaドライバを使ってマッピングを処理していますか? mongo dbに日付型として日付を格納しようとする必要があります。だから変換する必要はありませんし、MongoDBから読み込んでOracleに保存するだけです。 – Veeram