这是一个简单的查询,用于检索用户,上次在线多少分钟,或几小时或几天。小时和天的计算是正确的。但是对于分钟,以下是返回正确的值但是否定为例如-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')
答案 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。