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

MySQL YEAR() 함수로 특정 연도의 시작일과 종료일 조회하기

MySQL에서 특정 연도에 해당하는 시작 날짜(StartDate)와 종료 날짜(EndDate)를 조회하려면 YEAR() 함수를 사용하면 됩니다. 이 함수는 DATE 타입의 값에서 연도만 추출해 주기 때문에, 특정 연도 조건으로 데이터를 필터링할 때 매우 유용합니다.

1. 테이블 생성하기

먼저 시작일과 종료일을 저장할 테이블을 생성합니다.

mysql> create table DemoTable1843
     (
     StartDate date,
     EndDate date
     );
Query OK, 0 rows affected (0.00 sec)

2. 샘플 데이터 삽입하기

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

mysql> insert into DemoTable1843 values('2019-01-21','2019-10-12');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1843 values('2018-10-12','2018-12-31');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1843 values('2016-04-01','2017-05-02');
Query OK, 1 row affected (0.00 sec)

3. 전체 데이터 확인하기

SELECT 문으로 테이블에 저장된 모든 레코드를 조회합니다.

mysql> select * from DemoTable1843;

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

+------------+------------+
| StartDate  |    EndDate |
+------------+------------+
| 2019-01-21 | 2019-10-12 |
| 2018-10-12 | 2018-12-31 |
| 2016-04-01 | 2017-05-02 |
+------------+------------+
3 rows in set (0.00 sec)

4. 특정 연도로 조회하는 쿼리

이제 YEAR() 함수를 활용해 선택한 연도(예: 2018년)에 해당하는 시작일과 종료일을 조회하는 쿼리입니다. WHERE 절에서 StartDate 또는 EndDate의 연도가 2018인 레코드를 모두 가져오도록 OR 조건을 사용했습니다.

mysql> select * from DemoTable1843
     where year(StartDate)='2018'
     or
     year(EndDate)='2018';

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

+------------+------------+
| StartDate  |    EndDate |
+------------+------------+
| 2018-10-12 | 2018-12-31 |
+------------+------------+
1 row in set (0.00 sec)

정리

YEAR() 함수는 날짜 값에서 연도 부분만 추출하므로, 위 예제처럼 WHERE 절에서 특정 연도 조건을 걸 때 간편하게 사용할 수 있습니다. 만약 기간이 여러 해에 걸쳐 있는 데이터를 다룬다면, BETWEEN 연산자나 DATE_FORMAT() 함수를 함께 활용하면 더욱 유연한 조회가 가능합니다.