Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 날짜에 일 수를 빼는 방법 – DATE_SUB() 함수 완벽 가이드

네, MySQL에서는 DATE_SUB() 함수를 사용하여 날짜에서 원하는 일 수만큼 손쉽게 뺄 수 있습니다. 이 함수는 지정한 날짜 값에서 특정 시간 간격(Interval)을 차감한 결과를 반환합니다.

DATE_SUB() 기본 문법

SELECT DATE_SUB(yourColumnName, INTERVAL yourAmountOfDays DAY) FROM yourTableName;

실제 동작 과정을 이해하기 위해 예제 테이블을 만들어 단계별로 살펴보겠습니다.

1. 예제 테이블 생성

먼저 입학일(AdmissionDate)을 저장할 테이블을 생성합니다.

mysql> CREATE TABLE DemoTable660(AdmissionDate datetime);
Query OK, 0 rows affected (0.82 sec)

2. 데이터 삽입

INSERT 명령어를 사용해 몇 개의 날짜 레코드를 추가합니다.

mysql> INSERT INTO DemoTable660 VALUES('2018-01-24');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable660 VALUES('2019-07-10');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable660 VALUES('2020-11-20');
Query OK, 1 row affected (0.59 sec)

3. 전체 레코드 조회

SELECT 문으로 테이블의 모든 데이터를 확인합니다.

mysql> SELECT * FROM DemoTable660;

실행 결과는 다음과 같습니다.

+---------------------+
| AdmissionDate       |
+---------------------+
| 2018-01-24 00:00:00 |
| 2019-07-10 00:00:00 |
| 2020-11-20 00:00:00 |
+---------------------+
3 rows in set (0.00 sec)

4. 날짜에서 일 수 빼기

이제 DATE_SUB() 함수를 사용해 각 날짜에서 5일을 빼는 쿼리를 실행해 보겠습니다.

mysql> SELECT DATE_SUB(AdmissionDate, INTERVAL 5 DAY) FROM DemoTable660;

결과를 보면 모든 날짜가 정확히 5일씩 감소한 것을 확인할 수 있습니다.

+----------------------------------------+
| DATE_SUB(AdmissionDate, INTERVAL 5 DAY) |
+----------------------------------------+
| 2018-01-19 00:00:00                    |
| 2019-07-05 00:00:00                    |
| 2020-11-15 00:00:00                    |
+----------------------------------------+
3 rows in set (0.00 sec)

추가로 알아두면 좋은 팁

  • SUBDATE()는 DATE_SUB()의 별칭(Alias)으로, 두 함수는 완전히 동일하게 동작합니다.
  • 일(DAY) 외에도 MONTH, YEAR, HOUR, MINUTE, SECOND 등 다양한 시간 단위를 INTERVAL로 지정할 수 있습니다.
  • 반대로 날짜에 시간 간격을 더하려면 DATE_ADD() 함수를 사용하면 됩니다.