Convert seconds to human readable time duration

后端 未结 3 1242
谎友^
谎友^ 2020-12-03 07:11

How would I best convert 90060 (seconds) to a string of \"25h 1m\"?

Currently I\'m doing this in SQL:

SELECT 
  IF(
    HOUR(
      sec_to_time(
             


        
3条回答
  •  难免孤独
    2020-12-03 07:47

    TIME_FORMAT(SEC_TO_TIME(task_records.time_spent),'%Hh %im')
    

    Documentation is your friend:

    • http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

    According to comment:

    DROP FUNCTION IF EXISTS GET_HOUR_MINUTES;
    CREATE FUNCTION GET_HOUR_MINUTES(seconds INT)
      RETURNS VARCHAR(16)
    
      BEGIN
      DECLARE result VARCHAR(16);
      IF seconds >= 3600 THEN SET result = TIME_FORMAT(SEC_TO_TIME(seconds),'%kh %lm');
      ELSE SET result = TIME_FORMAT(SEC_TO_TIME(seconds),'%lm');
      RETURN result;
      END
    
    DELIMETER ;
    

    Usage:

    SELECT GET_HOUR_MINUTES(task_records.time_spent) FROM table
    

提交回复
热议问题