在mysql中,DATE_ADD()和简单的+/- INVERVAL不同吗?



我正在做一个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"]]}

我得到了&;2019-04-01&;使用date_add但是"2019-03-30"使用- interval.

减去3个月几乎总是会得到与加上-90天不同的结果,因为3个月通常不是90天。如果你从

更改date_add表单
date_add('2019-06-30', interval -90 day)

date_add('2019-06-30', interval -3 months)

或从

更改+/-间隔形式
cast("2019-06-30" as date) - interval 3 month

cast("2019-06-30" as date) - interval 90 day

它们应该匹配。

相关内容

  • 没有找到相关文章

最新更新