MySQL에서 CURDATE() 함수는 현재 날짜를 반환합니다. 이 함수와 DATE_SUB() 함수를 함께 사용하면 전날(어제)의 날짜를 손쉽게 구할 수 있습니다.
1. 현재 날짜 확인하기
먼저 CURDATE() 함수를 사용하여 현재 날짜를 조회해 보겠습니다.
mysql> select CURDATE(); +------------+ | CURDATE() | +------------+ | 2019-06-09 | +------------+ 1 row in set (0.00 sec)
현재 날짜가 2019-06-09로 출력되었습니다.
2. 테이블 생성하기
예제를 진행하기 위해 배송 날짜를 저장할 테이블을 먼저 생성하겠습니다.
mysql> create table DemoTable -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> ShippingDate date -> ); Query OK, 0 rows affected (0.63 sec)
3. DATE_SUB()로 전날 데이터 삽입하기
INSERT 명령어로 레코드를 삽입할 때 date_sub(CURDATE(), interval 1 day)를 사용하면 현재 날짜에서 하루를 뺀 값, 즉 전날 날짜를 저장할 수 있습니다.
mysql> insert into DemoTable(ShippingDate) values(date_sub(CURDATE(), interval 1 day)); Query OK, 1 row affected (0.22 sec)
4. 결과 확인하기
SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
출력 결과
+----+--------------+ | Id | ShippingDate | +----+--------------+ | 1 | 2019-06-08 | +----+--------------+ 1 row in set (0.00 sec)
현재 날짜가 2019-06-09였기 때문에, 하루를 뺀 2019-06-08이 정상적으로 저장된 것을 확인할 수 있습니다.
참고: 다른 방법
전날 날짜를 구하는 또 다른 방법으로 다음과 같은 쿼리도 사용할 수 있습니다.
mysql> select CURDATE() - INTERVAL 1 DAY;
또는
mysql> select DATE_SUB(CURDATE(), INTERVAL 1 DAY);
두 방법 모두 동일하게 전날 날짜를 반환하므로, 상황에 맞게 편리한 방식을 선택하여 사용하시면 됩니다.