MySQL 에서 날짜에 대한 함수가 존재한다. 그리고 그 날짜를 기준으로 어제와 오늘 그리고 내일까지도 조회가 가능하고 이와 관련해서 date 타입을 가진 테이블에 대해서 기간을 설정하여 조회가 가능하다.


이번에 INTERVAL 'd' DAY 라는 함수를 알게되어 기록한다.


- 현재 날짜를 가지고 오는 쿼리

1
2
3
4
5
6
7
mysql>  SELECT NOW() FROM DUAL;
 
+---------------------+
| NOW()               |
+---------------------+
| 2018-05-30 08:25:22 |
+---------------------+
cs



- 어제 날짜를 가지고 오는 쿼리

1
2
3
4
5
6
mysql> SELECT NOW() FROM DUAL WHERE NOW() - INTERVAL 1 DAY;
+---------------------+
| NOW()               |
+---------------------+
| 2018-05-30 08:25:51 |
+---------------------+
cs



- 내일 날짜를 가지고 오는 쿼리

1
2
3
4
5
6
mysql> SELECT NOW() + INTERVAL 1 DAY FROM DUAL;
+------------------------+
| NOW() + INTERVAL 1 DAY |
+------------------------+
| 2018-05-31 08:30:54    |
+------------------------+
cs


- MYSQL Functions

(1) DATE_ADD(date, INTERVAL value UNIT)

(2) DATE_SUB(date, INTERVAL value UNIT)


date 를 기준으로 해당 날짜만큼 더하거나 빼는 함수이다. 아래와 같이 이용한다.

1
2
3
4
5
6
7
8
9
10
SELECT 
    DATE_ADD(NOW(), INTERVAL 10 DAY) AS 'AFTER 10 DAYS'
FROM    
    DUAL;
 
+---------------------+
| AFTER 10 DAYS       |
+---------------------+
| 2018-06-09 08:51:53 |
+---------------------+
cs


1
2
3
4
5
6
7
8
9
10
SELECT 
    DATE_SUB(NOW(), INTERVAL 10 DAY) AS 'BEFORE 10 DAYS'
FROM    
    DUAL;
 
+---------------------+
| BEFORE 10 DAYS      |
+---------------------+
| 2018-05-20 08:55:03 |
+---------------------+
cs


Posted by doubler
,