php - php在特定时间间隔获得负值的时差

标签 php mysql

$updateLog = "UPDATE `tablename` 
              SET `TotalTimeLoggedIn`= (
                SELECT TIMEDIFF( `LoggedOut` , `LoggedIn` ) ) 
              WHERE id = '$id'";

我的登录值已经存储,在开始上述查询时注销的值也是如此

DateLoggedIn 2016-06-06 
LoggedIn 12:50:38   
DateLogged Out 2016-06-06
LoggedOut 04:36:57  
TotalTimeLoggedIn -08:13:41

它适用于 11:20AM11:50AM 但不适用于 11:20AM12:15 PM 我也得到负值

最佳答案

TIMEDIFF( `LoggedOut`,`LoggedIn` )TIMEDIFF() 返回 04:36:57 − 12:50:38 表示为时间值。等于 -08:13:41。

您的登录时间是 2016-06-06 12:50:38,注销时间是 2016-06-06 04:36:57。似乎登录是在注销后完成的。(当天凌晨 4 点 36 分注销,中午 12 点 50 分登录)。根据 24 小时制,这看起来不正确。

如果您仍然认为它是中午 12 点和下午 4 点之间的区别,请尝试这样的方法,

IF(TIMEDIFF(`LoggedOut`,`LoggedIn`)<0,
  ADDTIME(TIMEDIFF(`LoggedOut`,`LoggedIn`),12:00:00),
  TIMEDIFF(`LoggedOut`,`LoggedIn`)
)

关于php - php在特定时间间隔获得负值的时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37756731/

相关文章:

php - 任何获得404 Not Found的AWS EB Laravel路由nginx/1.16.1

php - 避免 html 认为您正在使用自定义标签

JavaFX - 不同类型的表列列表

PHP/MySQL - 选择选项,使用不同的表添加到条目

php - 计算用户的排名

php - 输出 mysql laravel 集合损坏

php - 在 Symfony 1.4 中订购嵌入式表单

mysql - 从表中删除

php - 从 App Engine 连接到 Cloud SQL 比从本地主机连接到 Cloud SQL 慢

php - 如何在 MySQL 的日期时间字段中存储 NULL 值?