日期计算,完整日期在单独的列中

  • 本文关键字:日期 单独 计算 ms-access
  • 更新时间 :
  • 英文 :


我正在尝试查询一个项目的最后 3 个月,我的月份和年份在单独的列中,如下所示:

      YEAR_时期
2014          年 5
2013          年 6
2013          年 11
2011          年 6
2009          年 2

查询需要始终从当前月份和年份开始。我尝试使用DateAdd(),DateSerial()和DateDiff()都没有奏效。每当我尝试使用 month(now()-3) 时,我都会得到 2 而不是 11。

添加或减去整数和日期只是从日期中添加或减去天数。 所以Now() - 3结果在 2016-02-15 (在这篇文章发布时是 2016-02-18)。 那显然仍然是二月份 - 因此你的结果是两个。

一试Month(DateAdd("m", -3, Now)). 在这里,我们将-3月份添加到当前日期,然后得到结果月份。 根据今天的日期,这将产生 11。

我想通了。

DateDiff("m",CDate(Format([PERIOD] & "/" & [YEAR_],"mm/yyyy")),Now()) 

这占用了这两个字段,并使它们成为一个单一的日期。然后,我取了本月和两个日期之间的月份的差异。然后,我将条件设置为 <= 3。

补遗

它可以简化为:

DateDiff("m",CDate([PERIOD] & "/" & [YEAR_]),Date()) 
但是,一般来说,如果

可以避免,则永远不要对日期使用字符串处理,并且它很容易:

DateDiff("m",DateSerial([YEAR_],[PERIOD],1)),Date()) 

相关内容

最新更新