需要计算登记入住和退房时间之间的总小时数

时间:2016-05-10 18:24:53

标签: php sql database insert

我正在尝试在我的数据库中创建签入/签出表。我的签到表单没有问题,将时间插入我的数据库。当我试图结账时会出现问题。第一次进入时一切都很好......

enter image description here

但是当我尝试登记并再次结账时,会发生这种情况......

enter image description here

到目前为止一切顺利,但是当我退房时......

enter image description here 目前,我的代码会更新所有匹配out的{​​{1}}列和totalTime列。

这是我的代码:

child_id

2 个答案:

答案 0 :(得分:3)

我认为您可以使用TIMESTAMPDIFF在第一个更新语句中完成所有这些操作,而不是使用PHP计算总时间:

UPDATE checkinout
SET 
    out = NOW(),
    totalTime = TIMESTAMPDIFF(SECOND, `in`, NOW()) / 3600
WHERE
    child_id = $var
    AND out IS NULL

条件WHERE out IS NULL只会更新out列中没有值的行。

答案 1 :(得分:1)

如果你有MySQL Db那么sql将是

SELECT TIMESTAMPDIFF(HOUR,in,out) from checkinout;