【问题标题】:Converting seconds to time where seconds is greater than 24 hours in MySQL将秒转换为 MySQL 中秒大于 24 小时的时间
【发布时间】:2020-04-06 19:33:09
【问题描述】:

我试图获得基于秒的真实生活时间,其中秒数可以大于 86400(等于 24 小时++)。例如,例如; 如果秒数等于 90000,结果将是 25:00:00,但我希望输出为 01:00:00..

我的逻辑是这样的:

IF seconds >= 86400
  // Add day of date +1
  // something similar to SEC_TO_TIME(seconds..). Need some help here
else
  SEC_TO_TIME(seconds)

【问题讨论】:

    标签: mysql sql date time


    【解决方案1】:

    使用模数:

    sec_to_time(myvalue % 86400)
    

    Demo on DB Fiddle

    with t as (select 12 myvalue union all select 9000)
    select sec_to_time(myvalue % 86400) v from t
    
    | v | | :------- | | 00:00:12 | | 02:30:00 |

    【讨论】:

      【解决方案2】:

      参考this answer

      SELECT
                 DATE_FORMAT(date('1970-12-31 23:59:59')
                 + interval 86400 second,'%j days %Hh:%im:%ss') as result;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-29
        相关资源
        最近更新 更多