2017-06-12 47 views
1

我已经从EXCEL文件中提取日期为42885.4253360301,日期为excel格式为DD-MON-RR HH:MI:SS UTC。 我想使用oracle函数将十进制值转换为datetime。 如何继续?如何在十进制中将提取的日期转换为日期时间

+0

这个“十进制值”,是几天,几小时,几分钟还是几秒或者别的什么? –

+0

不知道。我使用普及工具从EXCEL文件中提取了日期,并获得了这个十进制值。 –

回答

5

我真的不知道这是Oracle日期计算与十进制值的起点,但如果你把一样的东西:

select to_date('01/01/1900', 'dd/mm/yyyy')+42885.4253360301 as my_date from dual; 

你的结果是

MY_DATE   
------------------- 
01/06/2017 10:12:29 

这意味着你可以将一个简单的日期操作应用于您的Excel值,方法是将其添加到起点。哪个起点?我无法分辨,但希望这可以作为一个暗示。

+1

反向工作,我将他的十进制值插入到Excel中并转换为日期以确定他实际开始的日期:2017年5月30日10:12:29。把它放到Oracle中并减去42885.4253360301得出:30-dec-1899 00:00:00这样你就有了正确的想法,但是,我怀疑你需要使用1899年12月30日作为你的“基础”日期, 1,1900),然后加上..;)但是,也许,我也知道最简单的方法。 – Ditto

+1

Thanks @Ditto补充答案,让我们看看这对Tanmay有什么帮助。 –

+2

你完全走在正确的轨道上。实际上,Excel的确从1900年1月1日开始。然而,微软在早期就犯了一个错误,我相信他们决定永远不修复它,以便旧代码不会中断。也就是说,他们将1900年视为闰年(!!!!!),现在导致所有这些问题。你可以在Excel中很容易地测试它(看到1900年2月28日之后的日期,令人震惊的是,2/29/1900,尽管1900年并不是闰年)。 – mathguy

相关问题