当前位置: 首页 > 面试题库 >

获取一天中mysql的总工作时间

谢璞
2023-03-14
问题内容

我有一个MySQL表,其中记录了员工的登录和注销时间。在“输入输出”列中,“ 1”代表登录,“ 0”代表退出。

  [id]   [User_id]           [Date_time]                 [in_out]
    1       1          2011-01-20 09:30:03                  1
    2       1          2011-01-20 11:30:43                  0
    3       1          2011-01-20 11:45:12                  1
    4       1          2011-01-20 12:59:56                  0
    5       1          2011-01-20 13:33:11                  1
    6       1          2011-01-20 15:38:16                  0
    7       1          2011-01-20 15:46:23                  1
    8       1          2011-01-20 17:42:45                  0

是否可以使用单个查询检索用户一天中的总工作时间?

我尝试了很多,但都徒劳无功。我可以使用数组在PHP中执行此操作,但无法使用单个查询来执行此操作。


问题答案:
SELECT `User_id`, time(sum(`Date_time`*(1-2*`in_out`)))
  FROM `whatever_table` GROUP BY `User_id`;

(1-2 * in_out)项给每个登录事件一个-1因子,每个退出事件一个+1因子。该sum函数获取Date_time列的总和,然后GROUP
BYUser_id会为每个不同的用户创建总和。



 类似资料:
  • 问题内容: 我想在表格中添加一列并返回总和。我有一个循环,但是没有用。 问题答案: 您可以在MySQL查询中完全处理它: 在PHP代码中,尝试以下操作: 使用PDO(已弃用)

  • 问题内容: 假设我有2011年1月3日,我想在一周的第一天,也就是星期天,那是2011年1月2日,我该怎么做? 原因是我有此查询: 是的,我意识到起源拼写错误,但是在此之前我就在这里,因此由于太多内部应用程序引用了它,因此我无法对其进行更正。 因此,我按周分组,但我希望以此填充我的图表,所以我不能让所有的周初看起来都像不同的日期。我该如何解决? 问题答案: 如果您需要处理从星期一开始的几周,也可以

  • 本文向大家介绍Mysql时间轴数据 获取同一天数据的前三条,包括了Mysql时间轴数据 获取同一天数据的前三条的使用技巧和注意事项,需要的朋友参考一下 创建表数据   添加数据省略   时间轴前2条数据 ps:下面看下MySQL 生成 时间轴 调用: 结果: 表结构: 总结 以上所述是小编给大家介绍的Mysql时间轴数据 获取同一天数据的前三条,希望对大家有所帮助,如果大家有任何疑问请给我留言,小

  • 问题内容: 我有一张桌子,如下所示: 在MySQL中,如何查询是否希望每天返回sum(count)和结果,如下所示: 问题答案: 您需要在columnName周围使用function 。 SQLFiddle演示

  • 问题内容: 我需要在给定年份(例如2011年)的每一天的每一小时,在命令行上获取/打印,但我一直在用Java编写代码。 有人编码过这个问题吗? 问题答案: 这应该工作: 注意,例如,输出中的这个细微之处: