嗨,我是我的sql新手,我正在尝试计算两次的时间

例如:
时间开始= 21:00
时间= 03:00
结果将是06:00

我的查询像这样进行计算,但是它给了我18:00的结果,我将非常感谢任何帮助或建议,谢谢

 TIME_FORMAT(ABS(SEC_TO_TIME(ABS(TIME_TO_SEC(timestart)-TIME_TO_SEC(timeend)))), '%H:%i')

最佳答案

使用case

time_format(sec_to_time(case when timestart < timeend
                             then time_to_sec(timeend) - time_to_sec(timestart)
                             else 24*60*60 + time_to_sec(timeend) - time_to_sec(timestart)
                        end), '%H:%i'
           )

09-05 04:25