GetDate查询中的时区是12小时

时间:2012-10-16 01:32:45

标签: sql razor timezone webmatrix

我正在使用MS webmatrix和razor。

我有一个使用表达式CAST(GetDate() as INT)来获取当前日期整数值的查询。然而,即使我的服务器和PC都设置在GMT + 12(惠灵顿,奥克兰)上,返回的值是12小时 - 而在我的PC(和服务器)下午12点,它会提前一天跳过。

我如何减少12小时的价值,而不必在我的机器上设置12小时的错误时间?

感谢任何帮助。

1 个答案:

答案 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!