您好,我在 MS Access 的设计视图中,正在创建一个查询,该查询会选择过去 24 小时内入院的患者列表。我不确定如何对我的 DATE_ADMITTED 列、条件字段执行此操作。有什么帮助吗?
答案1
如果 DATE_ADMITTED 字段是真实的日期/时间字段,那么您可以将 DATE_ADMITTED 字段的条件设置为:
>=Now()-1
这会将查询结果过滤到过去 24 小时内,精确到运行查询的那一秒。
要返回昨天和今天的查询,请使用:
>=Date()-1
这应该涵盖从昨天 12:00:00 AM(午夜)到今天 11:59:59 PM(午夜)。
当然,上述标准不会检查未来的日期/时间。如果您偶然需要确保查询结果中不包含未来的日期/时间,则以下两个查询将过滤掉这些日期/时间。
>=Now()-1 And <Now()
>=Date()-1 And <Date()+1
标准示例网站:
http://office.microsoft.com/en-us/access-help/examples-of-query-criteria-HA010066611.aspx
视频系列(在 Google 视频上):
http://video.google.com/videoplay?docid=-6002948507483364070&hl=en#
当您说上周五时,我认为是前一个周五(而不是该月的最后一个周五或其他日期)。
这是一个查询,它将返回上一个星期五的结果,如果在星期五执行,仍将返回上一个星期五的结果,而不是当前星期五的结果。
(Weekday([DATE_ADMITTED])=6) And (DateDiff("d",[DATE_ADMITTED],Now())<=7) And (DateDiff("d",[DATE_ADMITTED],Now())>0)
如果您所说的“从上周五”是指从前一个周五到现在,那么根据您想要包含的日期,有以下一些条件:
从当前或上一个星期五到现在(如果在星期五运行则仅返回当前星期五的结果)
Between Date() And Date()-(IIf((Weekday(Date())>=6),(Weekday(Date())-6),(Weekday(Date())+1)))
从上一个星期五到现在(如果在星期五运行,结果中将包括当前星期五)(如果今天是星期五,则包括当前星期五。)
Between Date() And Date()-(IIf((Weekday(Date())>6),(Weekday(Date())-6),(Weekday(Date())+1)))
从上周五到现在(除非在周五运行,则从上周五到周四)。(如果今天是周五,则不包括当前周五。)
Between Date()-(IIf((Weekday(Date())=6),1,0)) And Date()-(IIf((Weekday(Date())>6),(Weekday(Date())-6),(Weekday(Date())+1)))
NOT 用法 - 这里有一个网站,展示了一些 NOT 的例子。
http://www.fontstuff.com/access/acctut06.htm
希望这可以帮助。