使用 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_masuk
和 tanggal_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
这取决于您希望最终结果的准确性。将 TIMESTAMPDIFF
与 MONTH
一起使用并除以 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
会给出更准确的结果。
我需要从我的 MySQL 数据库计算平均年数,我尝试使用 TIMESTAMPDIFF
哪个给出了有效结果:
AVG( TIMESTAMPDIFF(MONTH, tanggal_masuk, tanggal_yudisium )/12 )
或
AVG( TIMESTAMPDIFF(YEAR, tanggal_masuk, tanggal_yudisium ) )
tanggal_masuk
和 tanggal_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
这取决于您希望最终结果的准确性。将 TIMESTAMPDIFF
与 MONTH
一起使用并除以 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
会给出更准确的结果。