我們如何忽略 MySQL DATEDIFF() 函式返回的負值?


眾所周知 DATEDIFF() 函式用於獲取兩個日期的相差天數。因此,很有可能它也會返回負值。

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 之間的區別,那麼輸出將如下所示為負數:

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() 函式來忽略這些負值,並且可以按照以下方法進行:

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)

更新日期: 2020 年 1 月 29 日

1K+ 瀏覽

開啟你的職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.