首页 > 解决方案 > 从计算的时差查询中减去时间

问题描述

我的查询遇到问题我存储用户登录 time_in 和 time_out 以及一个名为 break 的列名,我在其中手动输入用户休息的时间,假设一个小时,然后 01:00:00 我将其存储在 break 列上并获取我使用的用户的总登录时间

TIME_TO_SEC(TIMEDIFF(time_out, time_in)) AS totalhours

现在从上面的查询中,我如何减去我存储在中断列上的值,然后显示总小时数?仅当中断列具有某些值时,才减去否则显示正确的总小时数。

例如,如果说用户的总登录时间是 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

非常感谢您的帮助。

谢谢

标签: mysqlsqlpdo

解决方案


我排序了

TIME_TO_SEC(TIMEDIFF(time_out, time_in)) - TIME_TO_SEC(break) AS totalhours

它确实给出了我正在寻找的结果。有人能告诉我它是否正确吗?


推荐阅读