我正在尝试使用我的月份和年份对项目的最近3个月进行查询,如下所示:
YEAR_ PERIOD
2014年5月
2013年6月6日
2013年11月11日
2011年6月
2009年2月
查询需要始终从当前月份和年份开始。我尝试过使用DateAdd(),DateSerial()和DateDiff()。每当我尝试使用月(现在() - 3)我得到2而不是11。
答案 0 :(得分:0)
添加或减去整数和日期只会添加或减去日期中的天数。因此 // calling service gateway API
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
"field",@"value",
nil];
[self getDataWithObject:dict onAPI:KGet_Preferences withController:(UIViewController*)controller :^(BOOL success, id response, NSError *error) {
if( success ) {
NSMutableDictionary *data = [[response valueForKey:@"data"] valueForKey:@"preferences"];
compilationHandler(success,data,error);
} else {
compilationHandler(success,nil,error);
}
}];
导致2016-02-15(在此发布时为2016-02-18)。那显然仍然是2月 - 因此你的结果是两个月。
尝试Now() - 3
。在这里,我们将Month(DateAdd("m", -3, Now))
个月添加到当前日期,然后获得结果月份。根据今天的日期,将导致11。
答案 1 :(得分:0)
我明白了。
DateDiff("m",CDate(Format([PERIOD] & "/" & [YEAR_],"mm/yyyy")),Now())
这取了两个字段并使它们成为一个日期。然后我从这个月和两个日期之间的月份中获得了差异。然后我将标准设置为< = 3。
<强>附录强>
可以简化为:
DateDiff("m",CDate([PERIOD] & "/" & [YEAR_]),Date())
但是,一般情况下,如果可以避免使用日期,则不应对日期使用字符串处理,并且很容易:
DateDiff("m",DateSerial([YEAR_],[PERIOD],1)),Date())