【问题标题】:minus time fromcalculated time difference query从计算的时差查询中减去时间
【发布时间】: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, ..) - 我认为这会更清楚。

标签: mysql sql pdo


【解决方案1】:

我排序了

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多