Mysql MariaDb timediff函数正在计算错误的小时数

Mysql MariaDb timediff函数正在计算错误的小时数,mysql,mariadb,Mysql,Mariadb,晚上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

晚上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

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

如您所见,如果单独选择部分,则时间没有日期部分:

SELECT TIME('2018-06-01 06:00:00'), TIME('2018-06-02 20:00:00')
输出:

06:00:00 20:00:00 
所以14是正确的


这里是

中的一个示例,我了解我使用的时间函数导致问题的原因