我在处理一个SQL SERVER 2005的数据库中的一个表时,它日期字段储存的值float类型,如:41305.7088194444 ,我在用SQL语句进行转换的时候得出的日期比正确时间多了两天,请问这个是什么原因导致?如何正确的将Float类型的时间转换成datetime类型的时间?
SQL语句:select convert(datetime,41305.7088194444,120),转换后为:2013-02-02 17:00:41.997
Excel转换后正确时间: 1/31/13 5:00 PM
SQL语句:select convert(datetime,41305.7088194444,120),转换后为:2013-02-02 17:00:41.997
Excel转换后正确时间: 1/31/13 5:00 PM
select convert(datetime,41305.7088194444,120)-2/*
2013-01-31 17:00:41.997
*/
#1.EXCEL中1代表的是1900-01-01,而SQL SERVER转换时用的公式是:1900-01-01 再加 上1,这样,就儿就相差24小时了,那为什么结果会差2天,即48小时呢
#2.EXCEL计算时,认为1900年的2月份有29天,而SQL SERVER计算时认为1900年2月份只有28天。所以从1900-3-1这一天起,开始计算结果开始相差2天。
貌似EXCEL有BUG啊。