Mysql 时间戳差异,仅获取小时、分钟和秒

Mysql 时间戳差异,仅获取小时、分钟和秒,mysql,time,diff,Mysql,Time,Diff,所以我每行有两张表,我用它来计算平均时间,单位是分钟 SELECT Sec_to_time (Avg (Timestampdiff (second, `survival`, `lastupdate`))) FROM main 但是我想单独获得小时、分钟和秒,这样我就可以在php中回显它们。您可以使用MySQL函数将从秒到秒时间返回的时间分解为其组件 为避免重复计算,您可以将计算包装起来: SELECT HOUR(x.timeDiff), MINUTE(x.timeDiff), SECOND

所以我每行有两张表,我用它来计算平均时间,单位是分钟

SELECT Sec_to_time (Avg (Timestampdiff (second, `survival`, `lastupdate`)))
FROM   main
但是我想单独获得小时、分钟和秒,这样我就可以在php中回显它们。

您可以使用MySQL函数将从秒到秒时间返回的时间分解为其组件

为避免重复计算,您可以将计算包装起来:

SELECT HOUR(x.timeDiff), MINUTE(x.timeDiff), SECOND(x.timeDiff) 
FROM 
  (
    SELECT Sec_to_time(Avg (Timestampdiff (second, `survival`, `lastupdate`))) as timeDiff
    FROM main
  ) AS x

您可以使用MySQL函数将从秒到秒时间返回的时间分解为其组件

为避免重复计算,您可以将计算包装起来:

SELECT HOUR(x.timeDiff), MINUTE(x.timeDiff), SECOND(x.timeDiff) 
FROM 
  (
    SELECT Sec_to_time(Avg (Timestampdiff (second, `survival`, `lastupdate`))) as timeDiff
    FROM main
  ) AS x
MySql中有hour()、minute()和second()函数

MySql中有hour()、minute()和second()函数

试试:

select concat(HOUR(Sec_to_time(Avg (Timestampdiff (second, login_datetime, logout_datetime)))),
  'hr ',
  MINUTE(Sec_to_time(Avg (Timestampdiff (second, login_datetime, logout_datetime)))),
  'min ',
  SECOND(Sec_to_time(Avg (Timestampdiff (second, login_datetime, logout_datetime)))), 
  'sec ') 
as his_time from table_name; 
尝试:


谢谢,这很好用。但我该如何回应每一个小时、每一分钟和每一秒呢?谢谢,这很好。但我该如何回应每一小时、每一分钟和每一秒?