WITH a as (SELECT 1 id,'2024-09-13 09:00:00' tmUNIONSELECT 2 id,'2024-09-13 12:05:00' tmUNIONSELECT 3 id,'2024-09-13 13:50:00' tmUNIONSELECT 4 id,'2024-09-13 14:15:00' tmUNIONSELECT 5 id,'2024-09-13 14:20:00' tmUNIONSELECT 5 id,'2024-09-13 18:45:00' tm)SELECT id, tm, -- 使用LAG函数获取上一行的时间戳 -- 计算时间差 DATEDIFF(MINUTE, LAG(tm) OVER (ORDER BY id), tm) AS TimeFROM a----------------------------假设上面这样的字段,上一个时间12:05与下个时间13:50 中间 是12:40-13:40 是休息时间,想要T除这部分时间。