SQL想要计算每个emp的工作时间和分钟数

问题描述 投票:0回答:1

我正在尝试从 SQL 数据库中从下面的日期时间列获取每个员工的总工作时间和分钟数,以供您参考,请需要您的支持如何做。

还有类型列,其中条目 0 和 1 表示 0 IN 和 1 Out。

下图供您参考我如何在 SQL 中获取数据以及如何需要报告。

enter image description here

enter image description here

sql sql-server
1个回答
0
投票
WITH CTE as
(  
SELECT CONVERT(date, TimeDate) as [Date], EmpNumber,  
       CAST(Min(TimeDate) as time) as TimeIN, CAST(Max(TimeDate) as time) as TimeOut ,
       DATEDIFF(minute,CAST(Min(TimeDate) as time),CAST(Max(TimeDate) as time)) as TotalMinutes   

  
FROM TableEntry
GROUP BY CONVERT(date, TimeDate),EmpNumber
)
SELECT [Date], EmpNumber, 
       RIGHT('0'+CAST(DATEPART(hour, TimeIN) as varchar(2)),2) + ':' +
       RIGHT('0'+CAST(DATEPART(minute, TimeIN)as varchar(2)),2) as TimeIn,
       RIGHT('0'+CAST(DATEPART(hour, TimeOut) as varchar(2)),2) + ':' +
       RIGHT('0'+CAST(DATEPART(minute, TimeOut)as varchar(2)),2) as TimeOut,      
       CAST(TotalMinutes / 60 AS VARCHAR(8)) + ':' + FORMAT(TotalMinutes % 60, 'D2') as TotalMinutes
FROM CTE
© www.soinside.com 2019 - 2024. All rights reserved.