MySql DateDiff不返回负数

时间:2017-05-26 20:55:32

标签: mysql datediff

如果退出,我需要返回负面时间。

例如:

 SELECT 
CONCAT(FLOOR(HOUR(TIMEDIFF('2017-05-19 12:32:11', NOW())) / 24), ' days ',
MOD(HOUR(TIMEDIFF('2017-05-19 12:32:11', NOW())), 24), ' hours ', MINUTE(TIMEDIFF('2017-05-19 12:32:11', NOW())), ' minutes') AS RemainigTime,
FROM kartica

这应该返回

  

-7天10小时

......但是我得到了

  

7天10小时

如何显示否定?

...

2 个答案:

答案 0 :(得分:1)

它会在没有比较大/小的情况下给你带来差异,所以:

SELECT CONCAT(
    IF('2017-05-19 12:32:11' < NOW(), '-', ''),
    FLOOR(HOUR(TIMEDIFF('2017-05-19 12:32:11', NOW())) / 24), ' days ',
    MOD(HOUR(TIMEDIFF('2017-05-19 12:32:11', NOW())), 24), ' hours ',
    MINUTE(TIMEDIFF('2017-05-19 12:32:11', NOW())), ' minutes'
) AS RemainigTime
FROM kartica

答案 1 :(得分:0)

那是因为差异是7天,10小时,总是,没有-7天;)。您需要将结果转换为另一种类型,如REAL