微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 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"]]}

我使用 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

它们应该匹配。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。