我想从上个月的20日提取数据到现在,但是在制作BETWEEN AND命令时是否无法创建函数?
WHERE ([dtUpdated] BETWEEN ((Year(Date()))-(Month(Date())-1)-20)
AND (Date()))
答案 0 :(得分:3)
您可以使用DateAdd
从今天的日期开始减去一个月。以下是立即窗口中的示例。
? Date()
8/15/2013
? DateAdd("m", -1, Date())
7/15/2013
然后,您可以确定该上一个日期的Year
和Month
。
? Year(DateAdd("m", -1, Date()))
2013
? Month(DateAdd("m", -1, Date()))
7
最后,您可以DateSerial
Year
,Month
和20作为日期。{/ p>
? DateSerial(Year(DateAdd("m", -1, Date())), _
Month(DateAdd("m", -1, Date())), 20)
7/20/2013
在查询中,请尝试这样......
WHERE [dtUpdated] BETWEEN
DateSerial(
Year(DateAdd("m", -1, Date())),
Month(DateAdd("m", -1, Date())),
20)
AND Date()
答案 1 :(得分:0)
看起来你试图通过将数字设置为'yyyy-mm-dd'之类的日期格式来创建日期,但实际上你只是减去一堆数字(2013-3-5 = 2005)所以我猜你的类型不匹配。
我认为MS Access具有DATEADD
功能,您可以通过算术建立日期。
如果你想要从上个月20日开始就会像
那样我认为会是这样的
DATEADD(d, 20, DATEADD(m, -1 * Month(Date()), DATEADD(d, -1 * Day(Date()), Date())))
这可以通过后续的DATEADD调用
来完成