我有下表,我想从中提取计算的时间。我希望获得每位员工每天花费的小时数。
CREATE TABLE Attendance
(
, EmpID INT
, TimeIn datetime
, TimeOut datetime
)
下面列出了我拥有的此表的示例记录。
EmpID | AttendanceTimeIN | AttendanceTimeOut
1 2017-04-01 9:00:00 2017-04-01 10:20:00
2 2017-04-01 9:00:00 2017-04-01 12:30:00
1 2017-04-01 10:25:00 2017-04-01 17:30:00
2 2017-04-01 13:26:00 2017-04-01 14:50:00
2 2017-04-01 15:00:00 2017-04-01 18:00:00
1 2017-04-02 9:00:00 2017-04-02 11:00:00
1 2017-04-02 11:10:00 2017-04-02 12:00:00
2 2017-04-02 9:00:00 2017-04-02 12:00:00
1 2017-04-02 12:50:00 2017-04-02 18:00:00
2 2017-04-02 12:51:00 2017-04-02 18:00:00
我想获取每天的"首次入"和"最后超时"和"员工",以计算特定员工每天在办公室花费的小时数。 我对如何使用最小/最大功能感到困惑,这样我就可以每天为两个员工提供小时数。 我正在寻找的结果集应如下所示。
EmpID | AttendanceTimeIN | AttendanceTimeOut
1 2017-04-01 9:00:00 2017-04-01 17:30:00
2 2017-04-01 9:00:00 2017-04-01 18:00:00
1 2017-04-02 9:00:00 2017-04-02 18:00:00
2 2017-04-02 9:00:00 2017-04-02 18:00:00
任何帮助将不胜感激。 谢谢
如果您的 TimeIn 和 TimeOut 是日期时间类型(它们应该是!),则此解决方案适用于我所做的测试:
SELECT
EmpID
, MIN(TimeIn)
, MAX(TimeOut)
FROM Attendance
GROUP BY EmpID, CAST(TimeIn AS DATE)
GROUP BY
子句意味着每个员工和每天有一行,因为CAST
DATE
去掉了时间部分。MIN
和MAX
本质上是有效的。