0

我正在使用 MS webmatrix 和剃须刀。

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

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

感谢任何帮助。

4

1 回答 1

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!
于 2012-10-16T01:47:43.703 回答