MySQL DAYNAME() 함수로 생년월일의 요일 이름 구하기
MySQL에서는 DAYNAME() 함수를 사용하면 날짜(Date of Birth) 데이터가 저장된 레코드에서 해당 날짜의 요일 이름을 손쉽게 추출할 수 있습니다. 이 함수는 DATE 또는 DATETIME 타입의 값을 인자로 받아 'Sunday', 'Monday'와 같은 영문 요일 이름을 문자열로 반환합니다.
아래에서 실제 예제를 통해 단계별로 살펴보겠습니다.
1단계: 테이블 생성
먼저 생년월일을 저장할 테이블을 생성합니다.
mysql> create table DemoTable795 (
DateOfBirth date
);
Query OK, 0 rows affected (0.61 sec)
2단계: 샘플 데이터 삽입
INSERT 문을 사용하여 여러 개의 생년월일 레코드를 입력합니다.
mysql> insert into DemoTable795 values('1996-01-21');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable795 values('2004-11-01');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable795 values('1990-03-31');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable795 values('2010-12-03');
Query OK, 1 row affected (0.13 sec)3단계: 전체 레코드 확인
SELECT 문으로 테이블에 저장된 모든 데이터를 조회해 보겠습니다.
mysql> select *from DemoTable795;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+-------------+
| DateOfBirth |
+-------------+
| 1996-01-21 |
| 2004-11-01 |
| 1990-03-31 |
| 2010-12-03 |
+-------------+
4 rows in set (0.00 sec)
4단계: DAYNAME() 함수로 요일 이름 조회
이제 생년월일을 기준으로 요일 이름을 표시하는 쿼리입니다.
mysql> select dayname(DateOfBirth) from DemoTable795;
실행 결과는 다음과 같습니다.
+----------------------+
| dayname(DateOfBirth) |
+----------------------+
| Sunday |
| Monday |
| Saturday |
| Friday |
+----------------------+
4 rows in set (0.00 sec)
추가 팁: 컬럼 별칭과 한글 요일 표시
결과 컬럼명을 더 읽기 좋게 만들고 싶다면 AS 키워드로 별칭을 지정할 수 있습니다.
mysql> SELECT DateOfBirth, DAYNAME(DateOfBirth) AS DayName FROM DemoTable795;
또한, 요일 이름을 한국어로 표시하고 싶다면 WEEKDAY() 함수와 CASE 문 또는 ELT() 함수를 조합하여 활용할 수 있습니다.
mysql> SELECT DateOfBirth,
ELT(WEEKDAY(DateOfBirth) + 1, '월요일','화요일','수요일','목요일','금요일','토요일','일요일') AS KoreanDay
FROM DemoTable795;
WEEKDAY() 함수는 월요일을 0으로 반환하므로, ELT() 함수에서 올바른 순서로 매핑하기 위해 1을 더해주는 점에 유의하세요. 이처럼 DAYNAME(), WEEKDAY(), ELT() 등의 함수를 적절히 활용하면 날짜 데이터에서 원하는 형태의 요일 정보를 자유롭게 가공할 수 있습니다.