使用 TIMESTAMPDIFF 计算平均年数

Calculate average number of years with TIMESTAMPDIFF

我需要从我的 MySQL 数据库计算平均年数,我尝试使用 TIMESTAMPDIFF

哪个给出了有效结果:

AVG( TIMESTAMPDIFF(MONTH, tanggal_masuk, tanggal_yudisium )/12 )

AVG( TIMESTAMPDIFF(YEAR, tanggal_masuk, tanggal_yudisium ) )

tanggal_masuktanggal_yudisium 列是 DATE 类型。

这些语句都产生相同的结果。由你决定。

select ABS(TIMESTAMPDIFF(MONTH, '2018-01-01', '2010-01-01') / 12); --Result 8

select ABS(TIMESTAMPDIFF(YEAR, '2018-01-01', '2010-01-01') )   --Result 8

这取决于您希望最终结果的准确性。将 TIMESTAMPDIFFMONTH 一起使用并除以 12 将给出浮点结果(例如 0.5 年),而将其与 YEAR 一起使用将仅给出整数(例如 TIMESTAMPDIFF(YEAR, '2018-09-01', '2018-01-10') 为 0),其中TIMESTAMPDIFF(MONTH, '2018-09-01', '2018-01-10') / 12 给出 -0.5833。总的来说,使用 MONTH 会给出更准确的结果。