Mysql MariaDb timediff函数正在计算错误的小时数
晚上8点到早上6点之间的时差应该是10小时,但实际上是14小时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
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是正确的
这里是中的一个示例,我了解我使用的时间函数导致问题的原因