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

MySQL에서 월 번호 대신 월 이름만 출력하는 방법


MySQL에서 날짜 문자열의 월 번호 대신 월 이름(예: October, January)을 출력하려면 STR_TO_DATE() 함수와 DATE_FORMAT() 함수를 함께 사용하면 됩니다. 먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1320
-> (
-> MonthName varchar(20)
-> );
Query OK, 0 rows affected (0.43 sec)

예제 1: 데이터 삽입

insert 명령을 사용해 테이블에 레코드를 삽입합니다.

mysql> insert into DemoTable1320 values('10/10/2010');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1320 values('11/12/2018');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable1320 values('12/01/2019');
Query OK, 1 row affected (0.15 sec)

select 문으로 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable1320;

출력 결과

+------------+
| MonthName |
+------------+
| 10/10/2010 |
| 11/12/2018 |
| 12/01/2019 |
+------------+
3 rows in set (0.00 sec)

예제 2: 월 이름 출력하기

다음은 월 번호 대신 월 이름을 출력하는 쿼리입니다.

mysql> select date_format(str_to_date(MonthName,'%d/%m/%Y'),'%M') from DemoTable1320;

동작 원리: STR_TO_DATE() 함수가 '%d/%m/%Y' 형식으로 저장된 문자열을 날짜 값으로 변환하고, 이어서 DATE_FORMAT() 함수의 %M 형식 지정자가 해당 날짜의 전체 월 이름을 영문으로 반환합니다. 만약 축약된 월 이름(예: Oct, Jan)을 원한다면 %b 형식 지정자를 사용하면 됩니다.

출력 결과

+-----------------------------------------------------+
| date_format(str_to_date(MonthName,'%d/%m/%Y'),'%M') |
+-----------------------------------------------------+
| October |
| December |
| January |
+-----------------------------------------------------+
3 rows in set (0.00 sec)

이처럼 두 함수를 조합하면 다양한 형식으로 저장된 날짜 문자열에서 손쉽게 월 이름을 추출할 수 있습니다.