我想从任何给定日期向后移动。帮助我获取给定日期后 3 个月的日期。
我尝试过 DATE_SUB、DATE_ADD 函数,它们不返回任何结果并继续运行查询。
SELECT * FROM Table a
INNER JOIN Tabel e
on a.MobileNumber=e.Phone_number
AND e.bill_date<a.invoice_date
AND e.bill_date>DATE_ADD(a.invoice_date,INTERVAL -3 MONTH)
查询持续运行,永不停止。如果我只是删除最后一个条件,它会在不到一秒的时间内显示结果。
最佳答案
按照以下方式添加索引可能有助于提高性能:
CREATE INDEX idx ON table_e (Phone_number, bill_date, col1, col2);
这里 col1
和 col2
是可能出现在 SELECT
子句中的另外两列。该索引的策略(如果使用的话)将是扫描相对较小的table_a
,该表只有309条记录。对于a
中的每条记录,MySQL将使用上述索引快速查找e
表中的匹配记录。
关于mysql - 如何从 SQL 查询中检索到的日期向后移动几个月?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57302044/