gpt4 book ai didi

java - 如何在 Java 或 SQL 中将 ISO DATE 转换为时间戳?

转载 作者:行者123 更新时间:2023-12-01 21:09:08 25 4
gpt4 key购买 nike

我同时使用 Mongo 和 Oracle 12c。

对于 MongoDB,我使用 ISO DATE (但像字符串一样)来保存日期。像这样:

{
"_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: el literal no coincide con la cadena de formato

有什么问题吗?

最佳答案

Oracle 解决方案:

SELECT TO_TIMESTAMP_TZ(
'2016-12-14T00:00:00Z',
'YYYY-MM-DD"T"HH24:MI:SSTZH:TZM'
)
FROM DUAL;

所以你的代码应该是:

final String query = "INSERT INTO " + TABLE_APPLICATION + " ("
+ "CreationDate"
+ ") VALUES ("
+ "TO_TIMESTAMP_TZ( ?, 'YYYY-MM-DD\"T\"HH24:MI:SSTZH:TZM')"
+ ")";

关于java - 如何在 Java 或 SQL 中将 ISO DATE 转换为时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41571067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com