我正在使用 Oracle SQL Developer 3.0.03。我正在尝试将 Excel 文件上传到 Oracle 数据表。我收到日期错误。数据库中的列是时间戳,我不知道将什么放入“数据加载向导”的日期格式中。如果我使用以下格式,我会得到“第 1 行 GDK-05016 插入失败:发现重复月份。
dd-mom-yy hh.mm.ss
知道正确的格式应该是什么吗?
在数据库中,日期列如下所示:01-MAY-12 01.16.50.000000000PM
分钟的代码mi
不是mm
(我认为mom
这只是一个错字,实际上是在阅读mon
)
有关所有支持的格式模型的完整列表,请参阅手册:
http ://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements004.htm#CDEHIFJA
Excel“零”日期是 1900 年 1 月 0 日(是的,零)。由于 Oracle 无法处理一个月中的“零”日,因此您需要从 Excel 值中减去 1;因此,以下内容应该让您接近您想要的:
SELECT CAST(TO_DATE('01-JAN-1900 00:00:00', 'DD-MON-YYYY HH24:MI:SS') AS TIMESTAMP) +
NUMTODSINTERVAL(41017.6361109954 - 1, 'DAY')
FROM DUAL
就“如何导入它”而言,我知道没有 Oracle 日期格式可以做到这一点。最简单的方法是将值导入 NUMBER 列,然后运行脚本进行日期转换。
分享和享受。