timestampdiff返回正确但负面的分钟

时间:2016-05-03 20:49:49

标签: mysql timestampdiff

这是一个简单的查询,用于检索用户,上次在线多少分钟,或几小时或几天。小时和天的计算是正确的。但是对于分钟,以下是返回正确的值但是否定为例如-4分钟,-6分钟,-10分钟的时候应该是积极的。

select username, 
    (CASE 
        when TIMESTAMPDIFF(HOUR, lastlogin, '2016-05-03 16:39:01')<1 
           then concat(TIMESTAMPDIFF(MINUTE, '2016-05-03 16:39:01', lastlogin), ' mins')
        when TIMESTAMPDIFF(DAY, lastlogin, '2016-05-03 16:39:01')<=2 
           then concat(TIMESTAMPDIFF(HOUR, lastlogin, '2016-05-03 16:39:01'), ' hrs')
        else concat(TIMESTAMPDIFF(DAY, lastlogin, '2016-05-03 16:39:01'), ' days') 
        END) as difference 
    from member where lastlogin<'2016-05-03 16:37:01' order by lastlogin desc limit 15;

这是生成此错误的一段代码,如何让它返回正值?

concat(TIMESTAMPDIFF(MINUTE, '2016-05-03 16:39:01', lastlogin), ' mins')

1 个答案:

答案 0 :(得分:0)

对于您使用的每个TIMESTAMPDIFF(*,lastlogin,“date string”) 但是几分钟你就用了

TIMESTAMPDIFF(MINUTE, '2016-05-03 16:39:01', lastlogin)

TIMESTAMPDIFF(MINUTE, lastlogin, '2016-05-03 16:39:01')

或者您也可以将该值乘以-1。