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 个月。