我们有一个如下所示的查询:
SELECT
hd.definition_id,
hd.sun_end < hd.sun_start AS sunEndFirst,
(IF (
hd.sun_end IS NULL,
0,
IF(
hd.sun_start IS NULL,
0,
IF(hd.sun_end = hd.sun_start, 24, time_to_sec(timediff(hd.sun_end, hd.sun_start)) / 60)
)
))
FROM audit_hour_definition AS hd
WHERE hd.definition_id = 5
ORDER BY hd.definition_id
当两个时间相等时(例如 09:00:00-09:00:00),查询有效。当开始时间和结束时间在同一天(例如 02:00:00-16:00:00)时,查询有效。当开始时间和结束时间跨越午夜标记时,查询就会中断。例如,当我们想要 12 时,18:00:00-06:00:00 返回 -720。
有没有人有任何很好的方法来处理这个问题?
编辑:所有时间列都使用 MySQL 的 TIME 数据类型。