我正在使用 MS webmatrix 和剃须刀。
我有一个使用表达式CAST(GetDate() as INT)
获取当前日期整数值的查询。但是,即使我的服务器和 PC 都设置在 GMT + 12(惠灵顿,奥克兰),返回的值是 12 小时后 - 在我的 PC(和服务器)上的下午 12 点,它会提前一天。
如何减少 12 小时的值,而不必在我的机器上设置错误的 12 小时?
感谢任何帮助。
将日期直接强制转换为 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!