有人可以解释这个SQL代码吗?

时间:2017-05-05 14:35:58

标签: sql sql-server datediff getdate datecreated

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

这应该做什么?

1 个答案:

答案 0 :(得分:2)

这是上一个日历月的所有内容。请注意,这与前一个日历月无关,无论当前日期如何。

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

虽然这很方便,但我认为代码至少应该有一个评论,因为对于一个随意的读者来说,这可能并不明显。