在 mysql 中,DATE_ADD() 和简单的 +/- INVERVAL 不同吗?
In mysql, are DATE_ADD() and simply +/- INVERVAL different?
我正在做一道 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”,但使用 - 间隔得到“2019-03-30”。
减去 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
它们应该匹配。
我正在做一道 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”,但使用 - 间隔得到“2019-03-30”。
减去 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
它们应该匹配。