我需要从我的MySQL数据库计算平均年数,然后尝试使用TIMESTAMPDIFF
哪个给出有效的结果:
AVG( TIMESTAMPDIFF(MONTH, tanggal_masuk, tanggal_yudisium )/12 )
或
AVG( TIMESTAMPDIFF(YEAR, tanggal_masuk, tanggal_yudisium ) )
tanggal_masuk
和tanggal_yudisium
列是DATE类型。
答案 0 :(得分:1)
这取决于您希望最终结果的准确性。将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
会得到更准确的结果。
答案 1 :(得分:0)
这些语句都产生相同的结果。由您决定。
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