mysql在添加/减去月份时的奇怪时间计算

时间:2019-09-30 15:10:42

标签: mysql sql date

我正在尝试对查询执行一些时间计算(timestampadd,timestampdiff),但是我遇到了意外情况。

我在mysql中执行了以下查询:

select timestampdiff(MONTH, timestampadd(MONTH, 1, '2017-01-30'),'2017-01-30')

使用逻辑将2017年1月30日增加一个月,然后它要求该日期与2017年1月30日之间的月份差值。

我期望结果是微不足道的并且等于1,但是前一个查询的结果为0。

这弄乱了我的计算。

那是为什么?

1 个答案:

答案 0 :(得分:4)

这很简单, 您将在1月30日添加1个月,与2017年一样是2月28日

现在jan30和feb28之间的差只有29天,小于一个月的值。 (30天)

因此其为0

为了确保准确性,您需要小心处理2月。