Oracle Date Literal [DD-MON-RR HH.MI.SSXFF AM]

时间:2012-06-07 03:11:44

标签: java oracle date timestamp nls

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

我无法以任何方式修改数据库设置,我必须通过JAVA的字符串格式插入日期(我不能修改定义它的类)。

话虽如此,我需要逐字逐句地重构格式,而不需要调整其他类/ db。

日期的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

搞砸了:或者?或者零(s)不足以达到毫秒级?现在已经好几个小时了。

提前致谢。

EDIT

经过几次推理后,老年人允许他们改变模型课程。现在一切都很好。感谢您的帮助和建议。

2 个答案:

答案 0 :(得分:1)

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

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

(或其他一些格式(建议不要在格式中使用mon,因为它也可能涉及NLS_TERRITORY))

答案 1 :(得分:0)

尝试使用这些链接来格式化想法。

date format example

simple date format