我是MS Access的新手,在申请日期时遇到使用BETWEEN AND功能的问题。
SELECT EmployeeID, FirstName, LastName, StartDate
FROM Chefs
WHERE StartDate BETWEEN #01/12/2015# AND #31/12/2015#;
以上为我提供了正确日期的条目以及在范围之前的日期条目,但不是之后。
更改为
WHERE StartDate BETWEEN #30/11/2015# AND #31/12/2015#;
给了我正确的答案。有人能告诉我为什么第一个查询不起作用吗?
编辑:使用日期格式dd / mm / yyyy。 DataType是具有常规日期格式的日期/时间。
答案 0 :(得分:5)
您遇到问题的原因是,如果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);