我已经构建了一个Access数据库来跟踪我们团队的质量保证监视器。我们的团队有几位领导,负责监督团队的代表。
我想构建一个查询,它将返回当前月份指定潜在客户的所有QA。我有指定潜在客户的标准,并且已经有了工作,但每次我尝试设置当前月份的标准时,最终都没有返回结果。
搜索Google一再建议使用Month(Now())
,但这也不起作用。
如何撰写此查询?
答案 0 :(得分:0)
答案受到@ Justin-rentmeester的启发,但经过精心改进后总是会返回所需的结果:
将以下内容添加到查询的WHERE
子句中:
MyDateField BETWEEN
DateSerial(Year(Date()),Month(Date()),1)
AND
DateAdd("s", -1, DateAdd("m", 1, DateSerial(Year(Date()),Month(Date()),1))), DateSerial(Year(Date()),Month(Date()),1)
我建议您使用SQL视图添加此标准。
此方法也适用于包含时间的日期,以及少于31天的月份。
答案 1 :(得分:0)
答案 2 :(得分:-1)
我编辑了我的答案!
假设workdate
是您的日期字段。
较短的where clause
可以是
where Year(workDate) = Year(Date()) and Month(workDate) = Month(Date())
这将过滤当月的所有记录。
如果您想进一步过滤今天的记录,请添加
and workdate <= Date()
如果您未在表格中存储未来日期的记录,则可能不需要这样做。
祝你好运。答案 3 :(得分:-2)
要在Access的“设计”视图中执行此操作,请选择报告中所需的所有列以及要限制为当前月份的日期列,以放置条件:
DateSerial(Year(Date()),Month(Date()),1)
并且
DateSerial(Year(Date()),Month(Date()),31)