晚上 8 点到早上 6 点之间的时差应该是 10 个小时,但实际上是 14 个小时
SELECT HOUR(TIMEDIFF(TIME('2018-06-01 20:00:00'),TIME('2018-06-02 06:00:00'))) AS NoofHours
最佳答案
您应该更正数据类型:
SELECT HOUR(TIMEDIFF(TIMESTAMP('2018-06-01 20:00:00'),
TIMESTAMP('2018-06-02 06:00:00'))) AS NoofHours
-- TIME != TIMESTAMP
<强> DBFiddle Demo
TIME
跳过日期部分。
SELECT TIME('2018-06-01 20:00:00'), TIME ('2018-06-02 06:00:00')
-- 20:00:00 06:00:00
<小时/>
使用TIMESTAMPDIFF
函数:
SELECT TIMESTAMPDIFF(HOUR,
TIMESTAMP('2018-06-01 20:00:00'),
TIMESTAMP('2018-06-02 06:00:00')) AS NoofHours
关于mysql - MariaDb timediff 函数计算错误的小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50834931/