【发布时间】:2021-05-27 12:41:13
【问题描述】:
我的查询遇到问题我存储用户登录 time_in 和 time_out 以及一个名为 break 的列名,我在其中手动输入用户休息的时间,假设一个小时,然后 01:00:00 我将其存储在休息时间列并获取我使用的用户的总登录时间
TIME_TO_SEC(TIMEDIFF(time_out, time_in)) AS totalhours
现在如何从上面的查询中减去存储在中断列中的值,然后显示总小时数?仅当 break 列具有某个值时,然后减去 else 显示正确的总小时数。
例如,如果说用户的总登录时间是 9 小时,但在休息时我添加了 1 小时,那么总小时数而不是显示 9 小时应该显示 8 小时。
这是我的完整查询
SELECT hours_id,
member_id,
username,
team,
time_in,
time_out,
break,
activity,
comments,
TIME_TO_SEC(TIMEDIFF(time_out, time_ink)) AS totalhours
FROM login_hours
WHERE DATE_FORMAT(date, '%Y-%m-%d') LIKE '".$filter_date."'
ORDER BY activity DESC
非常感谢您的帮助。
谢谢
【问题讨论】:
-
提供一个示例(CREATE TABLE + INSERT INTO 脚本与一些数据)并显示该数据所需的输出并附上解释。
-
附言。
TIME_TO_SEC(TIMEDIFF(time_out, time_ink))可以替换为TIMESTAMPDIFF(SECOND, ..)- 我认为这会更清楚。