我想根据我的表[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
搜索索引表的最佳方法是计算所需的日期范围,并在此基础上进行过滤。你可以用DATEADD
和EOMONTH
。注意,由于你有一个时间组件,你不能只使用EOMONTH
SELECT *
FROM YourTable
WHERE SoldDate >= DATEADD(day, 1, EOMONTH(GETDATE(), -2))
AND SoldDate < DATEADD(day, 1, EOMONTH(GETDATE(), -1))
EOMONTH
给出一个月的末尾,第二个参数表示要移动多少个月。 注意正确使用半开间隔
>= AND <
,这正确处理时间分量。