我尝试了下面的代码来提取最后13个月的数据。但从本月1日开始,它并没有停止。如何修改它以从每月的第一天提取数据?例如,如果我今天(11/13/18(运行它,我需要从11/1/17到今天的数据。
SELECT * FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("m", -13, DATE());
这:
SELECT * FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("m", -13, Dateserial(year(date()), month(date()),1));
使用
Dateserial(year(date()), month(date()),1)
它会给你当前月份的第一个
,所以你可以从中减去13个月。
您需要将日期更改为1作为
SELECT *
FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("d", -(DAY(Date())-1),DATEADD("m", -13, DATE());
或者使用DATESERIAL()
函数,该函数从零件返回DATE
作为
SELECT *
FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("m", -13, DATESERIAL(YEAR(Date()), MONTH(DATE()), 1))
在您的情况下,它将从日期2018
获得YEAR
部分,然后获得11的MONTH
部分和当天的1
部分,并将它们连接起来,以返回DATE
作为2018-11-1