mySQL:从日期中减去月份,并在WHERE子句中用作条件

时间:2018-11-08 08:58:21

标签: mysql database time

使用以下代码,我想确定在x位置发生中断的位置,是否在六个月前发布了警告声明。

在where子句中,我将Date_Sub函数结果用作条件:

SELECT disruption.disruptionDate, warning.warningID, warning.warningDate
FROM disruption
JOIN warning ON disruption.locationId = warning.locationID
WHERE warning.warningDate <= disruption.disruptionDate  
  AND warning.warningDate. >= DATE_SUB(disruption.disruptionDate, INTERVAL 6 MONTH)
ORDER BY disruption.disruptionDate

表规格:

  • 警告表:44,814条记录
  • 中断表:962,529条记录

我遇到了性能问题,并认为可能是WHERE子句中的DATE_SUB函数引起的。我在这里的研究几个月以来仅产生了Date_Sub作为减法。

有没有更有效的方式编写语句?

非常感谢您的帮助。

0 个答案:

没有答案