How can we ignore the negative values return by MySQL DATEDIFF() function?
众所周知,DATEDIFF()函数用于获取两个日期之间的天数差。 因此,很有可能它也返回负值。
1 2 3 4 5 6 7 8 9 | mysql> select * from differ; +------------+-------------+ | OrderDate | WorkingDate | +------------+-------------+ | 2017-10-22 | 2017-10-29 | | 2017-10-25 | 2017-10-30 | | 2017-10-25 | 2017-11-30 | +------------+-------------+ 3 rows in set (0.00 sec) |
上面的查询将返回表" differ"中的值。 现在,如果有人想获得OrderDate和WorkingDate之间的差,则输出将为负,如下所示:
1 2 3 4 5 6 7 8 9 | mysql> Select DATEDIFF(OrderDate, WorkingDate)AS 'DIFFERENCE IN DAYS' from differ; +--------------------+ | DIFFERENCE IN DAYS | +--------------------+ | -7 | | -5 | | -36 | +--------------------+ 3 rows in set (0.00 sec) |
但是我们可以使用MySQL ABS()函数忽略这些负值,可以按照以下步骤进行操作-
1 2 3 4 5 6 7 8 9 | mysql> Select ABS(DATEDIFF(OrderDate, WorkingDate))AS 'DIFFERENCE IN DAYS' from differ; +--------------------+ | DIFFERENCE IN DAYS | +--------------------+ | 7 | | 5 | | 36 | +--------------------+ 3 rows in set (0.00 sec) |