我正在尝试对查询执行一些时间计算(timestampadd,timestampdiff),但是我遇到了意外情况。
我在mysql中执行了以下查询:
select timestampdiff(MONTH, timestampadd(MONTH, 1, '2017-01-30'),'2017-01-30')
使用逻辑将2017年1月30日增加一个月,然后它要求该日期与2017年1月30日之间的月份差值。
我期望结果是微不足道的并且等于1,但是前一个查询的结果为0。
这弄乱了我的计算。
那是为什么?
答案 0 :(得分:4)
这很简单, 您将在1月30日添加1个月,与2017年一样是2月28日
现在jan30和feb28之间的差只有29天,小于一个月的值。 (30天)
因此其为0
为了确保准确性,您需要小心处理2月。