Java Oracle日期文字[DD-MON-RR HH.MI.SSXFF AM]
我正在尝试使用时间戳格式[DD-MON-RR HH.MI.SSXFF AM]插入我的日期 我不能以任何可能的方式修改数据库设置,我必须通过JAVA的字符串格式插入日期(我也不能修改定义它的类) 话虽如此,我需要逐条字符串地重新构造格式,而不需要调整其他类/db 日期的nls设置为DD-MON-RR。2012年6月12日和2012年6月12日效果非常好 但我发现很难重新创建日期的时间戳部分 下面列出了我尝试过的几种格式Java Oracle日期文字[DD-MON-RR HH.MI.SSXFF AM],java,oracle,date,timestamp,nls,Java,Oracle,Date,Timestamp,Nls,我正在尝试使用时间戳格式[DD-MON-RR HH.MI.SSXFF AM]插入我的日期 我不能以任何可能的方式修改数据库设置,我必须通过JAVA的字符串格式插入日期(我也不能修改定义它的类) 话虽如此,我需要逐条字符串地重新构造格式,而不需要调整其他类/db 日期的nls设置为DD-MON-RR。2012年6月12日和2012年6月12日效果非常好 但我发现很难重新创建日期的时间戳部分 下面列出了我尝试过的几种格式 '12-JAN-12' < success '12/JAN/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
经过几次推理,高年级学生同意修改模型类。现在一切都好了。感谢您的帮助和建议。由于您必须向数据库发送字符串,因此必须依赖oracle数据库到日期类型的隐式转换。
由于您无法更改数据库设置,因此我只能建议您更改会话设置。
因此,如果可以对DB运行命令,请尝试:
Statement st = conn.createStatement();
st.execute("alter session set NLS_DATE_FORMAT='dd/mm/yyyy hh24:mi:ss'");
(或其他格式(不建议在您的格式中使用
mon
,因为它可能也涉及NLS_TERRITORY
)数据库中的字段类型是什么?它是日期
还是时间戳
?它设置在日期
,但可用数据似乎在DD-MM-YYYY HH:Mi:ss AM
(例如:1/4/2010 4:52:46 PM
)oracle中的日期也包含时间,但只包含秒(无毫秒)。您尝试的格式需要时间戳数据类型我已尝试通过SQL12/JAN/2012 12:35:00 AM
插入此格式。也不管用。此错误ORA-01830:日期格式图片在转换整个输入字符串之前结束。如果可以使用sql,为什么不将转换为日期('12/01/2012 12:35:00','dd/mm/yyyy hh:mi:ss AM')
?不是依赖NLS_DATE_格式,顺便说一句,你能把它展示给我们吗
Statement st = conn.createStatement();
st.execute("alter session set NLS_DATE_FORMAT='dd/mm/yyyy hh24:mi:ss'");