晚上8点到早上6点之间的时差应该是10个小时,但实际上是14个小时
SELECT HOUR(TIMEDIFF(TIME('2018-06-01 20:00:00'),TIME('2018-06-02 06:00:00'))) AS NoofHours
hpxqektj1#
您应该更正数据类型:
SELECT HOUR(TIMEDIFF(TIMESTAMP('2018-06-01 20:00:00'), TIMESTAMP('2018-06-02 06:00:00'))) AS NoofHours -- TIME != TIMESTAMP
dbfiddle演示 TIME 跳过日期部分。
TIME
SELECT TIME('2018-06-01 20:00:00'), TIME ('2018-06-02 06:00:00') -- 20:00:00 06:00:00
使用 TIMESTAMPDIFF 功能:
TIMESTAMPDIFF
SELECT TIMESTAMPDIFF(HOUR, TIMESTAMP('2018-06-01 20:00:00'), TIMESTAMP('2018-06-02 06:00:00')) AS NoofHours
cfh9epnr2#
如您所见,如果单独选择部分,则时间没有日期部分:
SELECT TIME('2018-06-01 06:00:00'), TIME('2018-06-02 20:00:00')
输出:
06:00:00 20:00:00
所以14是正确的下面是sqlfiddle中的一个示例
2条答案
按热度按时间hpxqektj1#
您应该更正数据类型:
dbfiddle演示
TIME
跳过日期部分。使用
TIMESTAMPDIFF
功能:cfh9epnr2#
如您所见,如果单独选择部分,则时间没有日期部分:
输出:
所以14是正确的
下面是sqlfiddle中的一个示例