0

我正在使用 Oracle SQL Developer 3.0.03。我正在尝试将 Excel 文件上传到 Oracle 数据表。我收到日期错误。数据库中的列是时间戳,我不知道将什么放入“数据加载向导”的日期格式中。如果我使用以下格式,我会得到“第 1 行 GDK-05016 插入失败:发现重复月份。

dd-mom-yy hh.mm.ss

知道正确的格式应该是什么吗?

在数据库中,日期列如下所示:01-MAY-12 01.16.50.000000000PM

4

2 回答 2

4

分钟的代码mi不是mm

(我认为mom这只是一个错字,实际上是在阅读mon

有关所有支持的格式模型的完整列表,请参阅手册:
http ://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements004.htm#CDEHIFJA

于 2012-05-01T20:59:39.937 回答
0

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 列,然后运行脚本进行日期转换。

分享和享受。

于 2012-05-02T17:21:29.947 回答