如果使用mysql小时功能存在,如何获取半小时

时间:2018-12-10 06:30:06

标签: mysql

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

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

MySQL小时函数仅返回小时数而不是半小时

2 个答案:

答案 0 :(得分:0)

您可以同时调用HOUR MINUTE,后者是分钟的组成部分:

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小时。

另一种选择是先将两个时间戳转换为epoch以来的秒数。然后将它们的差额转换回小时数:

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

Demo

答案 1 :(得分:0)

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

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

结果

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