如何在 SQL 查询中定位上个月
How to Target Last Month in SQL Query
我在 SQL 查询中使用此代码
WHERE [Date] >= DATEFROMPARTS(DATEPART(year,GETDATE()),DATEPART(month,GETDATE())-1,DATEPART(day,GETDATE()))
AND [Date] <= EOMONTH(DATEFROMPARTS(DATEPART(year,GETDATE()),DATEPART(month,GETDATE())-1,DATEPART(day,GETDATE())));
问题是 2020 年 12 月的查询将出现错误
我发布的代码管理返回数据的日期。它查看代码为 运行 的日期,然后选择从上个月到上个月月底的那一天。我需要的是调用此代码之前一个月的第一天到最后一天的日期。
我明天会处理这个问题,看看其他人能想出什么解决方案会很有趣。
试试这个
SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0),
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) - 1
它将为您提供上个月的开始和结束日期
如果要上个月:
where date >= dateadd(month, -1, datefromparts(year(getdate(), month(getdate(), 1))) and
date < datefromparts(year(getdate(), month(getdate(), 1))
这只是检查它是否在本月的第一天之前,然后从中减去一个月。
我在 SQL 查询中使用此代码
WHERE [Date] >= DATEFROMPARTS(DATEPART(year,GETDATE()),DATEPART(month,GETDATE())-1,DATEPART(day,GETDATE()))
AND [Date] <= EOMONTH(DATEFROMPARTS(DATEPART(year,GETDATE()),DATEPART(month,GETDATE())-1,DATEPART(day,GETDATE())));
问题是 2020 年 12 月的查询将出现错误
我发布的代码管理返回数据的日期。它查看代码为 运行 的日期,然后选择从上个月到上个月月底的那一天。我需要的是调用此代码之前一个月的第一天到最后一天的日期。
我明天会处理这个问题,看看其他人能想出什么解决方案会很有趣。
试试这个
SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 1, 0),
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) - 1
它将为您提供上个月的开始和结束日期
如果要上个月:
where date >= dateadd(month, -1, datefromparts(year(getdate(), month(getdate(), 1))) and
date < datefromparts(year(getdate(), month(getdate(), 1))
这只是检查它是否在本月的第一天之前,然后从中减去一个月。