0

我正在尝试使用时间戳格式 [DD-MON-RR HH.MI.SSXFF AM] 插入我的日期。

我无论如何都无法修改数据库设置,我必须通过 JAVA 的字符串格式插入日期(我也无法修改定义它的类)。

话虽如此,我需要逐个字符串地重建格式字符串,而不需要调整其他类/数据库。

日期的 nls 设置为 DD-MON-RR。12-JUN-2012 和 12/JUN/2012 工作得非常好。

但我发现很难重新创建日期的时间戳部分。

下面列出了我尝试过的几种格式。

'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

由于您必须向数据库发送字符串,因此您必须依赖 oracle DB 到 DATE 类型的隐式转换。
由于您无法更改数据库设置,我唯一可以建议的是更改会话设置。
因此,如果您可以对数据库运行命令,请尝试:

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 回答