gpt4 book ai didi

mysql - 计算员工上个月在工作场所花费的每天平均小时数

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:35 25 4
gpt4 key购买 nike

我有表Time_Periods (Empl_Name, Direction, Date_Time),它存储了员工进出的数据。

Empl_Name - 员工姓名;

方向 - 方向(输入或输出);

Date_Time - 执行操作的日期和时间(详细到一秒)。

如果员工进入,那么他必然在同一天离开。一天之内,员工可以多次进出。

如何编写一个请求来计算员工上个月每天在工作场所花费的平均小时数?

更新:表的例子。

+-----------+-----------+---------------------+
| Empl_Name | Direction | Date_Time |
+-----------+-----------+---------------------+
| a1 | 1 | 2017-03-18 23:55:59 |
| a1 | 0 | 2017-03-18 23:56:07 |
| a2 | 1 | 2017-03-18 23:56:17 |
| a2 | 0 | 2017-03-18 23:56:22 |
| a3 | 1 | 2017-03-18 23:57:35 |
| a3 | 0 | 2017-03-18 23:57:39 |
+-----------+-----------+---------------------+

预期输出:a1 在工作场所花费了 7/30 秒,a2 在工作场所花费了 5/30 秒,a3 在工作场所花费了 4/30 秒。这意味着我想总结每个员工的工作时间和除以 30。

最佳答案

您想执行一个查询,将同一个表视为两个不同的表 - 如下所示:

SELECT t1.Empl_Name, TIMEDIFF(t1.Date_Time,t2.Date_Time) AS timein 
FROM empl t1, empl t2
WHERE t1.Direction='0' AND t2.Direction='1' AND t1.Empl_Name=t2.Empl_Name
GROUP BY Empl_Name

结果:

Empl_Name timein
A1 00:00:08
A2 00:00:05
A3 00:00:04

这些是以秒为单位的时间。你可以随心所欲。至于一天中的多次,您的数据库没有具体说明哪些进出时间在一起。如果可以假定连续输入/输出、输入/输出,那么您需要对时间求和并按 Date_Time 进行排序,但如果没有非常复杂的子查询,则没有明确的方法来执行此操作。

关于mysql - 计算员工上个月在工作场所花费的每天平均小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42881192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com