我是MS Access的新手,在申请日期时遇到使用BETWEEN AND功能的问题.
SELECT EmployeeID, FirstName, LastName, StartDate
FROM Chefs
WHERE StartDate BETWEEN #01/12/2015# AND #31/12/2015#;
Run Code Online (Sandbox Code Playgroud)
上面给出了具有正确日期的条目以及具有日期之前的日期的条目,但不是之后.
改为
WHERE StartDate BETWEEN #30/11/2015# AND #31/12/2015#;
Run Code Online (Sandbox Code Playgroud)
给了我正确的答案.有人能告诉我为什么第一个查询不起作用?
编辑:使用日期格式dd/mm/yyyy.DataType是具有常规日期格式的日期/时间.
您遇到问题的原因是,如果mm/dd/yyyy格式有意义,Access SQL会首先尝试.2015年12月1日确实(读作2015-01-12),而2015年11月30日则没有.接下来尝试dd/mm/yyyy将于2015年11月30日成功(读作2015-11-30).最后,它将尝试yyyy/mm/dd.
因此,汉斯写道:
许多有经验的Access开发人员默认使用yyyy-mm-dd以避免歧义.
然而:
如果你不喜欢,dd mmm yyyy应该可以工作.
注定要在任何非英语环境中失败,因为mmm本地化.
所以坚持使用ISO序列yyyy-mm-dd或使用DateSerial:
WHERE StartDate BETWEEN DateSerial(2015, 12, 1) AND DateSerial(2015, 12, 31);
Run Code Online (Sandbox Code Playgroud)