2013-05-08 39 views
1

當我們鍵入Excel單元格中當前日期爲08月 - 2013 右鍵單擊該單元格,並在格式當我點擊數爲類別,我得到了一些日期爲SQL數

Date-08-May-13 
    Formatted one-41402.00 

所以無論如何,我可以得到相同的數字在sql

我試過用這個。

select to_char(sysdate,'J') from dual 

但產量2456421

我明白,這是一個朱利安值

但任何人都可以幫助我得到的輸出作爲我在Excel中即獲得; 41402

回答

5

Windows版本的Excel將日期存儲爲序列號。 1900年1月1日是1,02年1月2日是2等。Mac版本用於使用不同的開始日期;我不知道這是否仍然如此。

你需要的基本數據是簡單的日期算術。

select current_date, current_date - date '1900-01-01' 
from dual; 

對於我當前的連接返回41400.67037037037。四捨五入並添加1用於fenceposting將返回您正在尋找的號碼,但我想要在多次時區測試,並在此之前我發誓。

5

Excel中的日期存儲爲序列號,01-JAN-1900爲1. Citation

我們可以在甲骨文日期算術,所以轉換從Oracle的Excel日期將是:

trunc(sysdate) - to_date('1900-01-01', 'yyyy-mm-dd') 

我測試過這一點,僵硬它產生41401 - 因爲它是從午夜去。因此,顯然微軟正在使用天花板函數將其提高到下一個整數:

ceil (sysdate - to_date('1900-01-01', 'yyyy-mm-dd'))