我试图在查询上执行一些时间计算(timestampadd,timestampdiff),但我遇到了意外的行为。
我在mysql中执行了这个查询:
select timestampdiff(MONTH, timestampadd(MONTH, 1, '2017-01-30'),'2017-01-30')使用逻辑将2017-01-30添加一个月,然后请求此日期与2017-01-30之间的月份差。
我期望结果是微不足道的并且等于1,但实际上前一个查询的计算结果是0。
这搞砸了我的计算。
为什么会这样呢?
发布于 2019-09-30 23:21:15
这很简单,您将在1月30日添加1个月,这将与2017年2月28日相同
现在jan30和feb28之间的差异只有29天,这还不到一个月的值。( 30天)
因此它是0
为了准确起见,你需要小心处理二月。
https://stackoverflow.com/questions/58170682
复制相似问题