我正在使用MySQL TIMESTAMPDIFF()
函数来计算两个日期之间的月份差,但是溢出存在问题。
说我有一个日期,我使用MySQL计算一个月后的同一日期:
select DATE_ADD('2018-10-31', INTERVAL 1 MONTH)
返回2018-11-30
所以,现在我有两个约会,分别是2018-10-31和2018-11-30。
现在我想计算两个日期之间的间隔时间,但是
select TIMESTAMPDIFF(MONTH, '2018-10-31', '2018-11-30')
返回0
,因为DATE_ADD()会根据11月的天数进行调整。
因此,给定两个日期(如上使用DATE_ADD()计算且间隔为 n 个月),可以使用TIMESTAMPDIFF()或其他函数来计算 n ?
答案 0 :(得分:1)
您可以使用的一种解决方案是检查两个日期之间的差额。在这种情况下,您将有30天的时间,因此您可以考虑相隔一个月或更短的时间。在MySQL documentation中,有一些示例描述了超过31天的时间间隔内的一个月验证。
select TIMESTAMPDIFF(DAY,'2018-10-31','2018-11-30');
Result: 30