Query/Expression 上个月

Query/Expression for Previous Month

在Access 2010中用作表达式,下面的return,例如AUG15.

Left(MonthName(Month(Date())),3) & Right(Year(Date()),2)  

如何将此修改为上个月的 return,即 JUL15

你应该看看 DateAdd 函数:

DateAdd ( interval, number, date )

根据您的具体要求,您可以使用它从当前日期减去一个月,如下所示:

DateAdd(m, -1, Date())

...或以您的表达为基础:

Left(MonthName(Month(DateAdd(m, -1, Date()))),3) & Right(Year(DateAdd(m, -1, Date())),2) 

从@Sam 建议的 DateAdd 表达式开始...

? DateAdd("m", -1, Date())
7/13/2015

接下来使用 Format 将其表示为 3 个字母的月份加 2 位数字的年份 ...

? Format(DateAdd("m", -1, Date()), "mmmyy")
Jul15

如果您希望月份全部大写,请将前面的表达式提供给 UCase ...

? UCase(Format(DateAdd("m", -1, Date()), "mmmyy"))
JUL15

请注意,这些示例来自 Access Immediate window,但这些表达式(没有 ?)在您的查询中的作用相同。

获取上个月同一天的记录,例如。今天是19/12/21,获取19/11/21的记录,可以使用参数查询,输入需要的日期。

如果上个月的每条记录,即从 1/11/21 到 30/11/21,查询中应创建两列以标识所需的月份和年份。说清楚,查询 m:month(date())y:year(date()) 中的 2 列以及标准行中的月份和年份标准。如果上个月 m 列的条件是 IIF(month(date())=1,12,month(date())-1),y 列的条件是 IIf(month(date())=1,year(date())-1,year(date()))IIF 适用于当前日期是一月份的情况。