WHERE ap_CreatedDate BETWEEN DATEADD(DAY,1,EOMONTH(GETDATE(),-2)) AND EOMONTH(GETDATE(),-1)
上面的查询将返回最后一个月/前一个月,但是由于日期包含时间范围
,它从上个月的最后一天(2022-04-30)缺少2条记录:2022-04-30 09:16:00.000
2022-04-30 19:11:02.907
我目前正在手动提取日期
where ap_CreatedDate >= '2022-04-01' and ap_CreatedDate < '2022-05-01'
但我想自动化这个过程,任何帮助将不胜感激
最清晰、最不容易出错的方法如下:
- 使用大于等于
>=
作为下限 - 使用低于
<
的上限,并将该上限设置为次月1日
WHERE ap_CreatedDate >= DATEADD(DAY, 1, EOMONTH(GETDATE(), -2))
AND ap_CreatedDate < DATEADD(DAY, 1, EOMONTH(GETDATE(), -1))
- 不要使用
between
,因为它所涵盖的内容不直观,你可能会以这个问题结束