MS-Access中的多个日期范围

时间:2014-06-03 13:54:04

标签: ms-access ms-access-2007 ms-access-2010

我有查询获取值取决于日期范围,如:

Where (CDATE(TR_DATE) >= ('03/06/2014') and CDATE(TR_DATE) <= ('13/06/2014'))

问题是Access将忽略第一个条件并且只执行最后一个条件.... 任何建议......

3 个答案:

答案 0 :(得分:1)

Access数据库引擎 始终 将不明确的#xx/yy/zzzz#日期文字解释为mm/dd/yyyy,无论Windows中指定的区域设置如何。因此,#03/06/2014# 始终 将被解释为March 6, 2014。另一方面,#13/06/2014#没有歧义,因为没有第13个月,所以它将被解释为June 13, 2014

解决方案是

  1. 始终使用#mm/dd/yyyy#,甚至更好,
  2. 始终使用明确的#yyyy/mm/dd#格式。

答案 1 :(得分:0)

我不知道这是否能完全解决您的问题,但Access中的日期应该被#而不是'包围:

WHERE CDATE(TR_DATE) >= #03/06/2014# AND CDATE(TR_DATE) <= #13/06/2014#

或者:

WHERE Format(TR_DATE, "dd/mm/yyyy") >= Format(#03/06/2014#, "dd/mm/yyyy") 
  AND Format(TR_DATE, "dd/mm/yyyy") <= Format(#13/06/2014#, "dd/mm/yyyy")

答案 2 :(得分:0)

尝试

Where TR_DATE Between #06/03/2014# And #06/13/2014#

Where TR_DATE Between #2014-06-03# And #2014-06-13#

这是更普遍接受的格式。