这是一个简单的查询,可以为用户检索他们上次在线的时间、小时或天数。小时和天数的计算是正确的。然而,对于分钟,以下返回正确值但为负值,例如-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')发布于 2016-05-04 05:02:46
对于您使用的每个TIMESTAMPDIFF (*,lastlogin,"date string"),但对于分钟,您使用
TIMESTAMPDIFF(MINUTE, '2016-05-03 16:39:01', lastlogin)试一试
TIMESTAMPDIFF(MINUTE, lastlogin, '2016-05-03 16:39:01')或者您也可以将该值乘以-1。
https://stackoverflow.com/questions/37014111
复制相似问题