【发布时间】:2021-05-21 22:03:35
【问题描述】:
我正在做一个 leetcode 问题 (https://leetcode.com/problems/new-users-daily-count/),我使用 date_add() 得到正确答案,但使用 -/+ 间隔得到错误答案。我以为我可以交互地使用它们,但现在似乎我需要始终使用 date_add()?
select date_add('2019-06-30', interval -90 day), cast("2019-06-30" as date) - interval 3 month
输出:
{"headers": ["date_add('2019-06-30', interval -90 day)", "cast(\"2019-06-30\" as date) - interval 3 month"], "values": [["2019-04-01", "2019-03-30"]]}
我使用 date_add 得到“2019-04-01”,但使用 -interval 得到“2019-03-30”。
【问题讨论】:
-
如果您执行 EXPLAIN EXTENDED [your query] 后跟 SHOW WARNINGS,您可以看到这两个查询到底有多么不同
-
请注意
interval -90 day与interval -3 month不同,您观察到的差异是由于这种差异。这不是因为使用+ INTERVAL与DATE_ADD。 -
AHHHH 谢谢你指出我的愚蠢错误!!! @spencer7593
标签: mysql date dateadd dateinterval