晚上8点到早上6点之间的时差应为10小时,但是给出14小时
SELECT HOUR(TIMEDIFF(TIME('2018-06-01 20:00:00'),TIME('2018-06-02 06:00:00'))) AS NoofHours
答案 0 :(得分:1)
您应该更正数据类型:
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
答案 1 :(得分:0)
如果您确定是否单独选择了部分,则TIME没有DATE部分:
SELECT TIME('2018-06-01 06:00:00'), TIME('2018-06-02 20:00:00')
输出:
06:00:00 20:00:00
所以14是正确的
中的示例