TIMESTAMPDIFF mysql 函数

TIMESTAMPDIFF mysql function

我对使用 TIMESTAMPDIFF 函数时得到的结果有点困惑

select '2021-05-01',CURRENT_DATE(),TIMESTAMPDIFF(MONTH,'2021-05-01',CURRENT_DATE()) as monthDiff;
select '2020-09-03',CURRENT_DATE(),TIMESTAMPDIFF(MONTH,'2020-09-03',CURRENT_DATE()) as monthDiff;    
select '2021-08-18',CURRENT_DATE(),TIMESTAMPDIFF(MONTH,'2021-08-18',CURRENT_DATE()) as monthDiff;

这是上述 sql、

的输出
2021-05-01  CURRENT_DATE()  monthDiff
2021-05-01  2021-12-08         7

2020-09-03  CURRENT_DATE()  monthDiff
2020-09-03  2021-12-08        15

2021-08-18  CURRENT_DATE()  monthDiff
2021-08-18  2021-12-08        3

2021-08-18 和 2021-12-08 之间的差异结果不应该是 4 吗?我错过了什么吗?

dbfiddle

从 8 月 18 日到现在的 12 月 8 日的差异是 3 .. 直到 12 月 18 日

select '2021-08-18',CURRENT_DATE(),TIMESTAMPDIFF(MONTH,'2021-08-18',CURRENT_DATE()) as monthDiff;

您可能正在寻找月份之间的差异

select '2021-08-18',CURRENT_DATE(), month(current_date()) - month('2021-08-18') monthDiff;

你的代码是正确的, TIMESTAMPDIFF() returns 从另一个日期时间表达式中减去一个值。 所以,你的第二个日期参数从第一个参数中减去 return 你 3. 因为从 08/18 到 12/08 的差异是 3,直到 12/17 它 return 3 之后它将 return 你 4.