MySQL에서 타임스탬프(timestamp) 값으로부터 요일 이름을 추출하려면 DAYNAME() 함수를 사용하면 됩니다. 이 함수는 날짜 또는 datetime 값을 입력받아 해당 날짜의 요일 이름을 문자열로 반환합니다.
기본 사용 문법은 다음과 같습니다.
select dayname(yourColumnName) from yourTableName;
1. 예제 테이블 생성하기
먼저 실습에 사용할 테이블을 생성해 보겠습니다. 로그인 날짜를 저장할 timestamp 타입의 컬럼 하나를 포함합니다.
mysql> create table DemoTable
(
LoginDate timestamp
);
Query OK, 0 rows affected (0.52 sec)
2. 데이터 삽입하기
INSERT 명령을 사용하여 여러 개의 레코드를 테이블에 삽입합니다.
mysql> insert into DemoTable values('2019-06-01');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('2019-06-02');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('2019-06-03');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('2019-06-04');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('2018-06-21');
Query OK, 1 row affected (0.09 sec)3. 저장된 데이터 확인하기
SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
출력 결과
+-----------------------+
| LoginDate |
+-----------------------+
| 2019-06-01 00:00:00 |
| 2019-06-02 00:00:00 |
| 2019-06-03 00:00:00 |
| 2019-06-04 00:00:00 |
| 2018-06-21 00:00:00 |
+-----------------------+
5 rows in set (0.00 sec)
4. 요일 이름 조회 쿼리 실행하기
다음은 MySQL에서 타임스탬프 컬럼으로부터 요일 이름을 가져오는 쿼리입니다.
mysql> select dayname(LoginDate) from DemoTable;
출력 결과
+--------------------+
| dayname(LoginDate) |
+--------------------+
| Saturday |
| Sunday |
| Monday |
| Tuesday |
| Thursday |
+--------------------+
5 rows in set (0.00 sec)
실행 결과를 보면 각 날짜에 해당하는 요일이 정확히 반환된 것을 확인할 수 있습니다. 즉, 2019-06-01은 토요일(Saturday), 2019-06-02는 일요일(Sunday), 2019-06-03은 월요일(Monday), 2019-06-04는 화요일(Tuesday), 2018-06-21은 목요일(Thursday)입니다.
추가 팁: 요일 이름을 한국어로 표시하기
DAYNAME() 함수가 반환하는 요일 언어는 MySQL 서버의 lc_time_names 시스템 변수 설정에 따라 결정됩니다. 기본값은 'en_US'로 영어 요일이 출력되지만, 아래와 같이 로케일을 변경하면 한국어 요일 이름도 얻을 수 있습니다.
mysql> SET lc_time_names = 'ko_KR';
mysql> select dayname(LoginDate) from DemoTable;
이렇게 하면 Saturday 대신 '토요일'처럼 한글 요일 이름이 반환되므로, 한국어 기반 서비스나 보고서를 만들 때 유용하게 활용할 수 있습니다.