首页 文章

如果存在mysql小时函数,如何获得半小时

提问于
浏览
0

我希望从下面的查询获得8:30小时而不是8小时

HOUR(TIMEDIFF('2018-12-01 07:00:00','2018-12-01 15:30:00')

Mysql小时函数只返回小时数而不是半小时

2 回答

  • 0

    我们可以使用TimeStampDiff()函数以 SECOND 单位获得两个日期时间值之间的差异 . 现在,我们可以使用Sec_To_time()函数将其转换为Time .

    SELECT SEC_TO_TIME(TIMESTAMPDIFF(SECOND, '2018-12-01 07:00:00','2018-12-01 15:30:00'))
    

    Result

    | SEC_TO_TIME(TIMESTAMPDIFF(SECOND, '2018-12-01 07:00:00','2018-12-01 15:30:00')) |
    | ------------------------------------------------------------------------------- |
    | 08:30:00                                                                        |
    
  • 0

    你可以同时调用 HOURMINUTE 来获取分钟组件:

    SELECT
        HOUR(TIMEDIFF('2018-12-01 07:00:00','2018-12-01 15:30:00')) +
        MINUTE(TIMEDIFF('2018-12-01 07:00:00','2018-12-01 15:30:00')) / 60.0 AS hours
    FROM yourTable;
    

    这输出 8.5 的小时数 .

    另一种选择是首先将时间戳转换为UNIX时间戳,以秒为单位 . 然后将他们的差异转换回小时:

    SELECT
        (UNIX_TIMESTAMP('2018-12-01 15:30:00') -
         UNIX_TIMESTAMP('2018-12-01 07:00:00')) / 3600.0 AS hours
    FROM yourTable;
    

    演示

相关问题