我想从下面的查询中获得8:30小时而不是8小时
HOUR(TIMEDIFF('2018-12-01 07:00:00','2018-12-01 15:30:00')
MySQL小时函数仅返回小时数而不是半小时
答案 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;
答案 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 |