获取上个月的日期范围

Get last month date range

WHERE ap_CreatedDate BETWEEN DATEADD(DAY,1,EOMONTH(GETDATE(),-2)) AND EOMONTH(GETDATE(),-1)

上述查询将 return last/previous 月,但是由于包含时间范围的日期,它从上个月 (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'

但我想自动执行此过程,非常感谢任何帮助

执行此操作最清晰且最不容易出错的方法如下:

  • 使用大于等于>=作为下限
  • 使用小于 < 的上限,并将该限制设为下个月的第一天
WHERE ap_CreatedDate >= DATEADD(DAY, 1, EOMONTH(GETDATE(), -2))
AND ap_CreatedDate < DATEADD(DAY, 1, EOMONTH(GETDATE(), -1))
  • 不要使用 between,因为它涵盖的内容不直观,您可能会遇到这个问题