【发布时间】:2012-06-07 03:11:44
【问题描述】:
我正在尝试使用时间戳格式 [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
是否搞砸了 : 或 .?还是零对于毫秒来说还不够?几个小时以来一直在这个麻烦中。
提前致谢。
EDIT
经过几次推理后,学长们同意更改模型类。现在一切都很好。感谢您的帮助和建议。
【问题讨论】:
-
数据库中字段的类型是什么?是
DATE还是TIMESTAMP? -
它设置在
DATE,但可用数据似乎在DD-MM-YYYY HH:Mi:ss AM(例如:1/4/2010 4:52:46 PM) -
oracle 中的日期也包含时间,但只有秒(没有毫秒)。您尝试的格式需要时间戳数据类型
-
我已经尝试通过 SQL
12/JAN/2012 12:35:00 AM插入它。也没有用。弹出此错误ORA-01830: date format picture ends before converting entire input string。 -
如果可以使用sql,为什么不使用
to_date('12/01/2012 12:35:00', 'dd/mm/yyyy hh:mi:ss AM')?而不是依靠 NLS_DATE_FORMAT,顺便说一句,你能把它展示给我们吗
标签: java oracle date timestamp nls