首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取一天内的总工作小时数mysql

获取一天内的总工作小时数mysql
EN

Stack Overflow用户
提问于 2011-01-20 17:06:38
回答 3查看 4K关注 0票数 13

我有一个记录员工登录和注销时间的MySQL表。在这里的in-out列中,1-表示登录,0-表示注销。

代码语言:javascript
运行
复制
  [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中做到这一点,但不能使用单个查询来做到这一点。

EN

Stack Overflow用户

发布于 2011-01-20 17:45:21

试一试:

代码语言:javascript
运行
复制
select [User_id], sum([Time_count])/3600
from (
  select [User_id],
         case when [in_out]=1 then   UNIX_TIMESTAMP([Date_time])
              when [in_out]=0 then - UNIX_TIMESTAMP([Date_time])
              end as [Time_count]
  from my_table
) as a
group by [User_id]

我不知道MySQL的语法,所以如果有人发现错误,请纠正他们。也许不能工作。例如,如果您有一个用户已登录。在这种情况下,您只能过滤[in_out]字段中具有相同数量的1和0的用户。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4745182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档