我正在使用Oracle SQL Developer 3.0.03。我正在尝试将Excel文件上传到Oracle数据表。我收到错误的日期。数据库中的列是时间戳,我不知道将什么放入“数据加载向导”的日期格式。如果我使用以下格式,我会得到'第1行GDK-05016的插入失败:找到重复的月份。
dd-mom-yy hh.mm.ss
知道正确的格式应该是什么?
在db中,日期列如下所示:01-MAY-12 01.16.50.000000000PM
答案 0 :(得分:3)
分钟代码为mi
而非mm
(我认为mom
只是一个拼写错误,实际上正在阅读mon
)
有关所有支持的格式模型的完整列表,请参阅手册:
http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements004.htm#CDEHIFJA
答案 1 :(得分:0)
Excel“零”日期是1月0日(是,零),1900年。由于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列,然后运行脚本进行日期转换。
分享并享受。