如何在SSMS中正确处理日期

时间:2017-01-03 13:17:01

标签: sql sql-server

自新年以来,我们的脚本遇到了这个问题。

我们有几个脚本可以回顾当前UTC日期的1个月。 从新年开始,这些脚本返回零结果,因为我认为,Sql不会将第12个月视为从第1个月起减1。

有没有办法强制sql将年份视为旋转数据而不是增量线?

**修改

抱歉,我忘了添加例子。

所以,一行读取

Select .... Where ... And month (timevalue) = month (getutcdate ()) -1

尽管在1月份之前正常工作,但结果为零。

我暂时将其更改为= 12,这会返回正确的数据。

**编辑2

是的,感谢链接和示例代码。到目前为止工作完美。我想我们当前的设置并没有像我假设的那样使用白天,而是将月值用作int?

1 个答案:

答案 0 :(得分:1)

检查下面,我希望它会有所帮助:

SELECT MONTH(DATEADD(MONTH, -1, GETUTCDATE())) AS PreviousMonth

返回:

PreviousMonth
12

所以你的查询应该是:

Select .... Where ... And month (timevalue) = MONTH(DATEADD(MONTH, -1, GETUTCDATE()))