如何在SQL Server中获取上个月的记录?



我想根据我的表[Sales]获取上个月的记录,变量"SoldDate">

例如,如果今天是29/09/2021,我想获得01/08/2021-31/08/2021的数据

"SoldDate"变量的格式为2018-04-11 00:00:00.000

我真的很感激你的帮助!我不知道如何让这个工作:(

可以使用eommonth ():

SELECT DATEADD(DAY, 1, EOMONTH(SoldDate, -2)) AS StartDate, EOMONTH(SoldDate, -1) AS EndDate

搜索索引表的最佳方法是计算所需的日期范围,并在此基础上进行过滤。你可以用DATEADDEOMONTH。注意,由于你有一个时间组件,你不能只使用EOMONTH

SELECT *
FROM YourTable
WHERE SoldDate >= DATEADD(day, 1, EOMONTH(GETDATE(), -2))
AND SoldDate <  DATEADD(day, 1, EOMONTH(GETDATE(), -1))
  • EOMONTH给出一个月的末尾,第二个参数表示要移动多少个月。
  • 注意正确使用半开间隔>= AND <,这正确处理时间分量。

最新更新