1
WHERE(DATEDIFF(MONTH, datecreated, GETDATE()) = +1)

这应该怎么做?

4

1 回答 1

2

这是在上一个日历月中获取所有内容。请注意,这特别是上一个日历月,与当前日期无关。

为什么会这样? datediff()计算两个日期/时间值之间的边界数。在这种情况下,边界是一个月的开始/结束。所以,如果今天是 2017 年 5 月 5 日,那么 2017 年 4 月的任何事情都有一个单一的边界。三月无事,五月无事。请注意,5 月 1 日和 5 月 31 日都是如此。

虽然这很方便,但我认为代码至少应该有一个注释,因为对于普通读者来说,发生了什么可能并不明显。

于 2017-05-05T14:47:23.073 回答