php - 如何通过用户ID获取多个条目之间的时间差?
问题描述
我想创建一个考勤表,我从打孔机中获得价值,如下所示:
UID | Time
023 | 2019-01-29 20:06:53
023 | 2019-01-29 20:07:10
023 | 2019-01-29 20:22:05
123 | 2019-01-30 08:57:01
027 | 2019-01-30 09:14:14
023 | 2019-01-30 11:22:21
123 | 2019-01-30 18:35:53
027 | 2019-01-30 19:00:25
现在一个表中的所有条目,所以我想要用户的第一个和最后一个条目并按日期分组,然后从 2 个值中获取时间差
我需要这样的输出:
UID | In Time | Out Time | Time Diff.
023 | 2019-01-29 20:06:53 | 2019-01-29 20:22:05 | 00:18:00
027 | 2019-01-30 09:14:14 | 2019-01-30 19:00:25 | 10:00:00
123 | 2019-01-30 08:57:01 | 2019-01-30 18:35:53 | 10:00:00
首先,我尝试获取这样的数据,但这对我不起作用
$select = mysqli_query ($db, "SELECT *, Min(Date) AS MinDate, Max(Date) AS MaxDate FROM demotable GROUP BY UID");
解决方案
您可以使用TIMEDIFF()
:
SELECT
UID,
Min(timecolumn) AS `In Time`,
Max(timecolumn) AS `Out Time`,
TIMEDIFF(Max(timecolumn), Min(timecolumn)) AS `Time Diff`
FROM demotable
GROUP BY UID, DATE(timecolumn)
推荐阅读
- android - 如何通过 Google API 在 Android 地图中获取附近的血库?
- c# - 如何调用 web 方法来接受 POST
- node.js - ConversationUpdate 未从 Teams 机器人用户添加事件 NodeJs SDK v4 触发
- java - JPA:查询执行时间长的可能原因
- c - 从消息队列接收后无法使用 shm_open
- c++ - 返回不带类型参数的 std::make_unique
- user-interface - 动态填充 selectOneMenu 中的选项
- r - 如何使用 R 收集几个月前的推文?
- python - 在 Django 模型中添加一对多关系
- javascript - 填写表单数据后Javascript验证不起作用