如何将提取的十进制日期转换为oracle中的Datetime

Tan*_*tta 1 oracle plsql etl data-conversion

我从EXCEL文件中提取日期,该文件是42885.4253360301excel格式的日期DD-MON-RR HH:MI:SS UTC.我想将十进制值转换为datetime使用oracle函数.如何进行?

Jai*_*dez 5

我真的不知道哪个是带有十进制值的oracle日期计算的起点,但如果你采取类似的东西:

select to_date('01/01/1900', 'dd/mm/yyyy')+42885.4253360301 as my_date from dual;
Run Code Online (Sandbox Code Playgroud)

你的结果是

MY_DATE           
-------------------
01/06/2017 10:12:29
Run Code Online (Sandbox Code Playgroud)

意味着您可以通过将简单日期操作添加到起点来对其应用简单日期操作.哪个出发点?我不能说,但希望这可以作为一个暗示.

  • 你正好走在正确的轨道上.事实上,Excel确实是从1900年1月1日开始的.然而,微软在早期犯了一个错误,我相信他们决定永远不会修复它,因此旧代码不会破坏.也就是说,他们将1900年视为闰年(!!!!!),现在导致所有这些问题.您可以在Excel中轻松测试这一点(看到1900年2月28日之后的日期是令人震惊的,即2009年2月29日,即使1900年不是闰年). (2认同)