我正在尝试编写一个Microsoft Access查询,该查询将返回表中分配的“到期日”日期在一天之内的所有数据。
意思是,当我进入AM的办公室时,我应该能够运行此查询以查看昨天到期和今天到期。这是数据示例:
| ID | JobName | DueBy |
|----|-------------------------|-----------|
| 1 | Sergio Pizza | 5/5/2018 |
| 2 | Hopkins Hospital | 9/1/2018 |
| 3 | Perry Hall High School | 9/25/2018 |
| 4 | Parkville High School | 9/24/2018 |
| 5 | Jim's House | 9/24/2018 |
我当前的查询是:
SELECT tblBid.*
FROM tblBid
WHERE (((tblBid.Due_By)>=(Now()-2)));
哪个可以返回正确数据集:
| ID | JobName | DueBy |
|----|-------------------------|-----------|
| 3 | Perry Hall High School | 9/25/2018 |
| 4 | Parkville High School | 9/24/2018 |
| 5 | Jim's House | 9/24/2018 |
但是,为什么我需要写NOW()-2而不是NOW()-1?为什么我必须回去两天?当我现在写NOW()-1时,我只获得佩里·霍尔高中的ID 3
谢谢!
答案 0 :(得分:1)
您正在使用Now()
函数,该函数返回当前日期和时间,表中的日期没有时间部分,因此它们是该日期的12AM,因此在Now() - 1
之前,您需要使用Date()
函数返回12AM的日期,然后可以将其用作Date() - 1
答案 1 :(得分:1)
使用 DateDiff :
SELECT tblBid.*
FROM tblBid
WHERE DateDiff("d", tblBid.Due_By, Date()) Between 1 and 0;