检索两个日期之间的不同小时数

时间:2014-03-07 05:26:00

标签: php sql datetime clock

如果有人可以帮助我解决如何将我的时间戳功能转换为有效的工资单服务,我将不胜感激。

现在,当用户登录我的网站时,他们可以单击按钮中的时钟,将datetime格式的时间戳加密为SQL。

格式为:2013-05-12 09:19:00

  • 点击后,它会在in列中启动时钟。
  • 再次点击时,它会添加到out列。

它存储在以下列中:

  • id(auto_increment)
  • userid(唯一)
  • in(datetime)
  • out(datetime)

一个函数如何查看/工作以获取员工的总时数?

至少,请指出正确的方向来解决这个问题。

3 个答案:

答案 0 :(得分:1)

您可以利用MySQL函数SUMTIMESTAMPDIFF为您计算:

SELECT SUM(TIMESTAMPDIFF(HOUR, `in`, `out`)) AS hours
  FROM myTable
 WHERE userid = 1

Live DEMO

答案 1 :(得分:0)

我会选择具有用户ID的所有行,并且在PHP中将获得如下函数:

$time = 0;
while($row = $query->fetch_object())
{
    $time += (strtotime($row->out) - strtotime($row->in));
}

然后$time将是您可以用自己喜欢的方式格式化的总时间。

答案 2 :(得分:0)

我会使用mysql查询:

select SEC_TO_TIME(SUM(TIME_TO_SEC(session_duration))) as total_session_duration
    from (
        select timediff(`in`, `out`) as session_duration 
            from employees_log #your table_name here
            where userid = [your user id]
) as t_duration

无法测试,但我很确定这应该可行。