MS-Access SQL查询-按日期筛选

时间:2018-09-26 02:46:55

标签: sql date ms-access

我正在尝试编写一个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

谢谢!

2 个答案:

答案 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;