我有一张表,上面列有收到的订单。
我正在做一份报告,看看在D日之前收到多少订单.例如,我想看到:
D Day-5 days: 8 orders received in total
D Day-4 days: 12 orders received in total
D Day-3 days: 20 orders received in total
D Day-2 days: 33 orders received in total
D Day-1 days: 55 orders received in total 这是我使用的查询:
SELECT * FROM recipients
WHERE
orderDate > #01/01/2017#
AND orderDate < #10/02/2017# -- (Where 10/2/17 is already X days prior to D Day)但是这个查询正在运行,给了我到目前为止收到的所有订单(即26/2/2017)。
正确的答案应该是零(没有在2月10日之前收到订单),而是--它给我显示了200多条记录,我可以看到orderDate字段在2月10日之后。
感谢你的投入!
发布于 2017-02-26 15:21:12
Access SQL并不期望使用dd/mm/yyyy格式,而是使用mm/dd/yyyy或yyyy/mm/dd格式来表示日期值(它本身不带格式)。因此,2017年10月10日改为2017年10月10日至10月2日。
所以:
SELECT * FROM recipients
WHERE
orderDate > #01/01/2017#
AND orderDate < #02/10/2017#或者,泛型方法,因为您很少有固定的日期值:
PARAMETERS DateFrom DateTime, DateTo DateTime;
SELECT * FROM recipients
WHERE
orderDate > DateFrom AND orderDate < DateTo发布于 2017-02-26 13:58:04
我使用了Format1函数,它似乎解决了这个问题:
SELECT * FROM recipients
WHERE
orderDate > Format (#01/01/2017#,'dd/mm/yyyy')
AND orderDate < Format (#10/02/2017#,'dd/mm/yyyy')虽然我仍然不完全理解我最初的问题出了什么问题。我想是日期格式问题: dd/mm或mm/dd
谢谢
https://stackoverflow.com/questions/42468604
复制相似问题