我正在研究一个我想每月运行的查询,该查询将在13个月前查看有效的日期



现在,我只能想到使用DateAdd函数,该功能仅为我从2018年3月到今天的13个月范围。因此,在三月,我希望它能返回2018年2月有生效日期的事物的结果,我希望在2018年3月有效的日期。关于如何实现这一目标的任何想法或建议?我认为我可以通过声明变量来做到这一点,但认为可能有另一种涉及声明变量的方式。tia。

请尝试。

Declare @tbl Table(
id INT ,
[group]  Varchar(50),
[index] varchar(50),
Dat DATETIME,
cases int,
closed int
)
INSERT INTO @tbl VALUES(1,'g1','g2',GETUTCDATE()-1000,250,0)
INSERT INTO @tbl VALUES(2,'g2','g3',GETUTCDATE() -100,350,370)
INSERT INTO @tbl VALUES(3,'g3','g1',GETUTCDATE()-200,330,490)
INSERT INTO @tbl VALUES(3,'g3','g1',GETUTCDATE()+10,60,50)
SELECT * FROM @tbl WHERE Dat BETWEEN DATEADD(MM,-13,GETUTCDATE()) AND GETUTCDATE()  

DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 13, 0)

您13个月前获得了这个月的第一个。

SELECT * FROM 
  tablename
WHERE 
  datecolumn 
    BETWEEN DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) - 13, 0) AND GETDATE()

最新更新