Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

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)

위 쿼리는 '차이' 테이블의 값을 반환합니다. 이제 누군가 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)