将日期直接转化为数字返回的结果是怎么计算来的呢?
比如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位把