日期:2014-05-17  浏览次数:20587 次

将日期直接转化为数字返回的结果是怎么计算来的呢?
比如select cast(getdate() as int),返回数字41610,朋友说是返回从1900-1-1到当前时间的天数。
但下如的两个sql:
select cast(cast('2014-01-02 11:59:59' as datetime) as int)
select cast(cast('2014-01-02 12:00:01' as datetime) as int)

返回的结果不一样,一个是41639, 一个是41640。为什么是在12点的时候+1呢?请问这个与什么设置有关。

------解决方案--------------------
这个应该是四舍五入 造成的,

select cast(cast('2014-01-02 12:00:01' as datetime) as int)

就相当于 41639.5天,所以最后进了1位把