2017-06-12 48 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

相關問題