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

MySQL에서 생년월일(DOB) 데이터를 기반으로 요일 이름을 조회하는 방법

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() 등의 함수를 적절히 활용하면 날짜 데이터에서 원하는 형태의 요일 정보를 자유롭게 가공할 수 있습니다.