【问题标题】:MS Access SQL - How to pull last 13 months data from the first of the first month?MS Access SQL - 如何从第一个月的第一天提取过去 13 个月的数据?
【发布时间】:2018-11-13 17:23:10
【问题描述】:

我尝试使用以下代码提取过去 13 个月的数据。但它不是从本月 1 日开始的。如何修改它以从每月的第一天提取数据? 例如如果我今天(2018 年 11 月 13 日)运行它,我想要从 17 年 11 月 1 日到今天的数据。

    SELECT * FROM MyTable T 
    WHERE T.[Date Joined] >= DATEADD("m", -13, DATE());

【问题讨论】:

    标签: sql ms-access ms-access-2016


    【解决方案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 个月。

    【讨论】:

      【解决方案2】:

      您需要将日期更改为 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 并将它们连接起来以返回DATE2018-11-1

      【讨论】:

      • 哦,是的,这就是你的想法
      • 谢谢@Sami。我使用了 Dateseriel 函数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多