mysql有员工上班时间和下班时间用datetime类型保存,若何统计员工上班时间
时间: 2024-03-01 12:54:36 浏览: 209
MySQL日期数据类型、时间类型使用总结
5星 · 资源好评率100%
如果你的 MySQL 数据库中,员工上班时间和下班时间是分别用 datetime 类型保存的,那么你可以使用以下 SQL 查询语句来统计员工的上班时间:
```
SELECT employee_id, attendance_date, TIMEDIFF(MAX(attendance_time), MIN(attendance_time)) AS work_time
FROM (
SELECT employee_id, DATE(attendance_time) AS attendance_date, attendance_time
FROM attendance_table
WHERE DATE(attendance_time) = '2022-01-01' -- 选择统计的日期
) AS t
GROUP BY employee_id, attendance_date;
```
这个查询语句会返回一个结果集,其中包含每个员工在指定日期的上班时间。结果集中的每一行都代表一个员工在某一天的出勤记录,其中包含员工的 ID、出勤日期和当天的上班时间。在这个查询语句中,我们首先使用子查询来选择指定日期的出勤记录,然后使用聚合函数 `MAX` 和 `MIN` 分别获取员工的最晚和最早的上班时间,并使用函数 `TIMEDIFF` 计算出员工的上班时间。你可以根据自己的实际需要,进一步对这个查询语句进行修改和优化。
阅读全文