在Excel单元格中输入当前日期为2013年5月8日 右键单击单元格,当我点击数字作为类别时,我会得到一个数字
Date-08-May-13
Formatted one-41402.00
无论如何,我可以在sql
中获得相同的数字我尝试过使用它。
select to_char(sysdate,'J') from dual
但输出是2456421
我知道这是朱利安值
但是,任何人都可以帮助我获得输出,因为我正在使用excel,即; 41402
答案 0 :(得分:5)
Excel中的日期存储为序列号,01-JAN-1900为1. Citation。
我们可以在Oracle中使用日期进行算术运算,因此从Oracle转换为Excel日期将是:
trunc(sysdate) - to_date( '1900-01-01', 'yyyy-mm-dd')
我已经测试了这个并且真实地产生了41401 - 因为它是从午夜开始的。显然,微软正在使用天花板功能将其提升到下一个整数:
ceil (sysdate - to_date( '1900-01-01', 'yyyy-mm-dd') )
答案 1 :(得分:5)
Windows版本的Excel将日期存储为序列号。 01年1月1日至1月1日,02年1月2日是2,等等.Mac版本过去使用不同的开始日期;我不知道是否仍然如此。
您需要的基本数据是简单的日期算术。
select current_date, current_date - date '1900-01-01'
from dual;
为我当前的连接返回41400.67037037037。对于fenceposting进行舍入并添加1将返回您正在寻找的数字,但是我想在我发誓之前用多个时区进行测试。