Oracle SQL开发人员:上载日期格式

Oracle SQL开发人员:上载日期格式,oracle,plsql,Oracle,Plsql,我使用的是Oracle SQL Developer 3.0.03。我正在尝试将Excel文件上载到Oracle数据表。我得到一个日期错误。数据库中的列是一个时间戳,我不知道在“数据加载向导”的日期格式中输入什么。如果我使用以下格式,我会得到“第1行GDK-05016的插入失败:找到重复月份” dd mom yy hh.mm.ss 你知道正确的格式应该是什么吗 在数据库中,日期列如下所示:01-MAY-12 01.16.50.000000000 pm分钟的代码是mi而不是mm 我猜妈妈只是个打字错

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

dd mom yy hh.mm.ss

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

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

分钟的代码是mi而不是mm

我猜妈妈只是个打字错误,实际上是在读mon

有关所有受支持格式型号的完整列表,请参阅手册:

分钟的代码是mi而不是mm

我猜妈妈只是个打字错误,实际上是在读mon

有关所有受支持格式型号的完整列表,请参阅手册:

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日期格式可以做到这一点。最简单的方法是将值导入数字列,然后运行脚本进行日期转换


分享和享受。

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日期格式可以做到这一点。最简单的方法是将值导入数字列,然后运行脚本进行日期转换


分享和享受。

@a_horse_,with_no_name当我运行以下查询时,从dual中选择时间戳'40604.0','dd mon yy hh.mi.ss',我得到以下错误:ORA-01847:月日必须介于month@a_horse_with_no_name当我运行以下查询时,从dual中选择时间戳'40604.0','dd mon yy hh.mi.ss',我得到以下错误:ORA-01847:月日必须介于1和月的最后一天之间当我运行以下查询时,从dual中选择时间戳'40604.0','dd mon yy hh.mi.ss',我得到以下错误:ORA-01847:月日必须介于1和月的最后一天之间month@JeremyF. 这是因为“40604.0”与您指定的格式掩码不匹配。它缺少dd mon yy要求的破折号,不包括hh.mi.ss要求的小时、分钟和秒。此外,mon需要月份名称,而不是两位数。这都在我发布的链接中进行了解释。当我运行以下查询,从dual中选择时间戳'40604.0','dd mon yy hh.mi.ss'时,我得到以下错误:ORA-01847:月份的日期必须介于month@JeremyF. 这是因为“40604.0”与您指定的格式掩码不匹配。它缺少dd mon yy要求的破折号,不包括hh.mi.ss要求的小时、分钟和秒。此外,mon需要月份名称,而不是两位数。这一切都在我发布的链接中进行了解释