我正在使用MS webmatrix和razor。
我有一个使用表达式CAST(GetDate() as INT)
来获取当前日期整数值的查询。然而,即使我的服务器和PC都设置在GMT + 12(惠灵顿,奥克兰)上,返回的值是12小时 - 而在我的PC(和服务器)下午12点,它会提前一天跳过。
我如何减少12小时的价值,而不必在我的机器上设置12小时的错误时间?
感谢任何帮助。
答案 0 :(得分:2)
将日期直接强制转换为INT看起来非常错误。
要正确获取日期的INTEGRAL值,请直接使用DATEDIFF。
select cast(cast('20120301' as datetime) as int) -- 40967
select cast(cast('20120301 12:30' as datetime) as int) -- 40968, oh noes!
select datediff(d,0,'20120301') -- 40967
select datediff(d,0,'20120301 12:30') -- 40967, yes!