我正在做一个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
它们应该匹配。