날짜 형식에서 연도를 추출하려면 MySQL에서 내장 함수 YEAR()를 사용할 수 있습니다. 쿼리는 다음과 같습니다 -
mysql> SELECT YEAR(curdate()) as OnlyYearFromCurrentDate;
다음은 출력입니다 -
+-------------------------+ | OnlyYearFromCurrentDate | +-------------------------+ | 2018 | +-------------------------+ 1 row in set (0.00 sec)
또는 다음과 같은 방법으로 할 수 있습니다 -
mysql> SELECT YEAR(date(now())) as OnlyYearFromCurrentDate;
다음은 출력입니다 -
+-------------------------+ | OnlyYearFromCurrentDate | +-------------------------+ | 2018 | +-------------------------+ 1 row in set (0.00 sec)
이를 통해 열이 varchar인 경우에도 이를 달성할 수 있습니다. 먼저 테이블을 생성하겠습니다 -
mysql> create table ExtractYearDemo −> ( −> YourDueTime varchar(200) −> ); Query OK, 0 rows affected (1.15 sec)
insert 명령을 사용하여 테이블에 레코드를 삽입합니다. 쿼리는 다음과 같습니다 -
mysql> insert into ExtractYearDemo values('27-10-2011'); Query OK, 1 row affected (0.16 sec) mysql> insert into ExtractYearDemo values('28-11-2012'); Query OK, 1 row affected (0.15 sec) mysql> insert into ExtractYearDemo values('29-12-2018'); Query OK, 1 row affected (0.14 sec) mysql> insert into ExtractYearDemo values('01-01-2019'); Query OK, 1 row affected (0.15 sec)
SELECT 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다 -
mysql> select *from ExtractYearDemo;
다음은 출력입니다 -
+-------------+ | YourDueTime | +-------------+ | 27-10-2011 | | 28-11-2012 | | 29-12-2018 | | 01-01-2019 | +-------------+ 4 rows in set (0.00 sec)
다음은 컬럼이 varchar 타입일 때 테이블 컬럼에서 연도를 추출하는 쿼리입니다 -
mysql> select YEAR(STR_TO_DATE(yourDueTime, "%d-%m-%Y")) As OnlyYearFromDate from ExtractYearDemo;
다음은 연도를 표시하는 출력입니다 -
+------------------+ | OnlyYearFromDate | +------------------+ | 2011 | | 2012 | | 2018 | | 2019 | +------------------+ 4 rows in set (0.00 sec)