按日期过滤SQL结果

时间:2020-09-22 09:39:37

标签: mysql sql date

这是我查询的维护日期列表。

SELECT `checkdates`.`checkdateplanneddate`, `checkdates`.`checkdatevehicle`, `checktypes`.`checktype`, `checktypes`.`emailto`, `checktypes`.`daysnotice`
FROM `checkdates`
    , `checktypes`
WHERE `checktypes`.`checktype` = `checkdates`.`checkdatechecktype`;

这个主意是.. 服务器每天都会根据为该类型支票设置的日期通知,通过电子邮件向客户发送电子邮件,告知他们即将到来的支票日期。 (参见图片)

当前它显示所有检查日期。

我需要做的就是过滤列表,这样它只显示日期 “今天日期加上checktypes.daysnotice”

我尝试了许多不同的查询,但是似乎无法获得正确的组合。

提前谢谢

我已附上图片以显示数据可用

The data is available, but I need to filter the dates

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,并假设您正在运行MySQL(如使用反引号引起引用,并且phpmyadmin屏幕复制指示),则可以使用以下日期算术:

SELECT cd.checkdateplanneddate, cd.checkdatevehicle, ct.checktype, ct.emailto, ct.daysnotice 
FROM checkdates cd
INNER JOIN checktypes ct ON ct.checktype = cd.checkdatechecktype
WHERE cd.checkdateplanneddate = current_date + interval ct.daysnotice day

where条件实现了所需的逻辑。

旁注:

  • 使用标准的显式联接!隐式连接(在from子句中使用逗号)是一种非常古老的语法,不应在新代码中使用

  • 表别名使查询更易于读写