Я использую Mongo и Oracle 12c одновременно.Как преобразовать ISO DATE в Timestamp в 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" : {}
}
Я хочу использовать Timestamp тип формата в 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: эль не буквальному не совпадают против La Cadena де Formato
В чем проблема?
[Как это в Oracle] (http://stackoverflow.com/a/28211019/266304); но название говорит, что вы хотите сделать это на Java, так что вы действительно имеете в виду? Также, какой тип данных является столбцом, и собираетесь ли вы преобразовать значение UTC в локальное время? Если это дата и вы не хотите ее корректировать, вы можете использовать ту же самую маску формата с 'to_date()', но это не будет строго правильным. –
Как создается код в 'getFieldFromJson'? вы используете драйвер Mongo java для обработки отображения? Вы должны попытаться сохранить дату как тип даты в mongo db тоже. Поэтому вам не нужно конвертировать, и вы можете просто читать из MongoDB и сохранять его в oracle. – Veeram