MS Access SQL - 如何从第一个月的第一个月提取最近 13 个月的数据?
MS Access SQL - How to pull last 13 months data from the first of the first month?
我尝试使用以下代码提取过去 13 个月的数据。但它不是从本月 1 号开始的。如何修改它以从该月的第一天提取数据?
例如如果我 运行 今天 (11/13/18),我想要从 11/1/17 到今天的数据。
SELECT * FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("m", -13, DATE());
您需要将日期更改为 1,因为
SELECT *
FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("d", -(DAY(Date())-1),DATEADD("m", -13, DATE());
或者使用 DATESERIAL()
函数,其中 return 一个 DATE
来自部分 as
SELECT *
FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("m", -13, DATESERIAL(YEAR(Date()), MONTH(DATE()), 1))
它将从您的情况下的 2018
日期获取 YEAR
部分,然后获取 MONTH
部分,即 11 和 1
部分,即day 并将它们连接到 return a DATE
as 2018-11-1
这个:
SELECT * FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("m", -13, Dateserial(year(date()), month(date()),1));
使用
Dateserial(year(date()), month(date()),1)
这给你当月的第一天
所以你从中减去 13 个月。
我尝试使用以下代码提取过去 13 个月的数据。但它不是从本月 1 号开始的。如何修改它以从该月的第一天提取数据? 例如如果我 运行 今天 (11/13/18),我想要从 11/1/17 到今天的数据。
SELECT * FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("m", -13, DATE());
您需要将日期更改为 1,因为
SELECT *
FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("d", -(DAY(Date())-1),DATEADD("m", -13, DATE());
或者使用 DATESERIAL()
函数,其中 return 一个 DATE
来自部分 as
SELECT *
FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("m", -13, DATESERIAL(YEAR(Date()), MONTH(DATE()), 1))
它将从您的情况下的 2018
日期获取 YEAR
部分,然后获取 MONTH
部分,即 11 和 1
部分,即day 并将它们连接到 return a DATE
as 2018-11-1
这个:
SELECT * FROM MyTable T
WHERE T.[Date Joined] >= DATEADD("m", -13, Dateserial(year(date()), month(date()),1));
使用
Dateserial(year(date()), month(date()),1)
这给你当月的第一天
所以你从中减去 13 个月。