【发布时间】:2017-04-07 20:49:55
【问题描述】:
我有 trfdespacio 表,其中注册了操作员号码、出发日期和到达日期。
我有 trfdespacho 表,其中注册了操作员号码、出发日期和到达日期。 我想在出发日期和到达日期之间获得以小时和分钟为单位的工作时间,以便稍后获得我休息的时间。 例如注册日期为3月10日1点14分,3月10日当天9点25分结束,劳动时间为8小时11分钟。 用连续的劳动时间获得我在 1 天休息的时间, 3月10日至3月11日被要求报日期怎么办 因为我可以得到这两天的工作时间和休息时间。
我有以下内容,我只能得到我在 1 天内工作的总时间,因为我可以做更多天。
SELECT
D.numOperador,
(cast(SUM(DATEDIFF(MINUTE, D.FechaSalida, D.FechaLlegada)) / 60 as varchar) + +':'+
cast( SUM(DATEDIFF(MINUTE, D.FechaSalida, D.FechaLlegada)) % 60 AS varchar ) ) as TiempoLaborado
FROM
trkOperadores O
INNER JOIN trfDespacho D ON O.NumOperador = D.numOperador
WHERE O.NumOperador = 900200
AND D.FechaSalida>='2017-03-10 00:00:00.000' AND D.FechaLlegada<=DATEADD(DAY, 1, '2017-03-10 00:00:00.000')
GROUP BY
D.NumOperador, FechaSalida, FechaLlegada
GO
【问题讨论】:
-
您是否需要每天的 LaborTime 和 RestTime,例如 3 月 10 日、3 月 11 日等?或者您需要查询过滤器中给出的开始日期和结束日期之间的连续劳动和休息时间?
-
第二个问题我需要根据查询过滤器在开始和结束日期之间连续工作和休息的时间
标签: sql sql-server