【问题标题】:How to convert time format in mysql?如何在mysql中转换时间格式?
【发布时间】:2015-12-02 18:05:12
【问题描述】:

我有五个像这里这样的输出(这是查询TIMEDIFF(out_time, in_time))->9:04:04, 8:56:16, 9:43:09, 9:40:03

当我使用这个 SUM(TIMEDIFF(out_time, in_time)) as 'Working hours' 查询来获得这个时间的总和时,我会得到 364332 但我想要的是时间格式 37:23:32 有没有代码要做吗?

【问题讨论】:

标签: mysql


【解决方案1】:

可以使用MySQL函数SEC_TO_TIME()

SELECT SEC_TO_TIME(SUM(TIMEDIFF(out_time, in_time))) as Working hours

【讨论】:

    【解决方案2】:

    试试这个:

    select DATE_FORMAT(FROM_UNIXTIME(SUM(TIMEDIFF(out_time, in_time))) ,'%H:%i:%s') as 'Working hours'
    

    【讨论】:

      【解决方案3】:

      试试这个:

      Select SEC_TO_TIME(SUM(TIME_TO_SEC(timediff(out_time, in_time)))) AS workingHours
      

      【讨论】:

      • 1/4/1900 5:12:12 AM :( 这就是我要搞定的事情
      • 尝试先删除SEC_TO_TIME(),比如Select SUM(TIME_TO_SEC(timediff(out_time, in_time))) AS workingHours,然后你就可以得到时间,只需将其转换为小时即可。
      【解决方案4】:

      这是我已经完成的工作

      CONCAT(
      FLOOR(
      SUM(CASE WHEN TIME_TO_SEC(TIMEDIFF(out_time,in_time))<=0 THEN TIME_TO_SEC(TIMEDIFF(out_time,in_time))=''
      ELSE TIME_TO_SEC(TIMEDIFF(out_time,in_time)) END)/3600) ,':',
      FLOOR(MOD(
      SUM(CASE WHEN TIME_TO_SEC(TIMEDIFF(out_time,in_time))<=0 THEN TIME_TO_SEC(TIMEDIFF(out_time,in_time))=''
      ELSE TIME_TO_SEC(TIMEDIFF(out_time,in_time)) END),3600)/60)) as 'WORKING HOURS'
      

      【讨论】:

        猜你喜欢
        • 2013-03-02
        • 2020-05-31
        • 1970-01-01
        • 2014-09-18
        • 1970-01-01
        • 2023-01-12
        • 1970-01-01
        • 2010-09-12
        • 2011-01-05
        相关资源
        最近更新 更多