본문 바로가기

문제풀기/프로그래머스 문제풀이

[MySQL 문법 정리] 프로그래머스 Level1 문제를 통한 쿼리문 사용법 정리(DATE_FORMAT, 날짜 및 시간 함수)

728x90
반응형

안녕하세요~ 오늘도 프로그래머스 문제들을 풀어보면서 공부한 쿼리문들에 관해서 정리해보겠습니다~!!

 

1. DATE_FORMAT

   ▷ 날짜 형식의 데이터를 원하는 형태로 출력할 때 사용하는 쿼리문

 

◎ 사용법

1. DATE_FORMAT 사용 방법

DATE_FORMAT(date, format)


▷ date : 포맷팅할 날짜 값
format : 날짜를 표시할 형식


◎ 예시

SELECT DATE_FORMAT(nowdate, '%Y-%m-%d') as date FROM board;


▷ board 테이블에 nowdate라는 컬럼이 있다면 출력 형식을 '2023-06-14'와 같이 출력하도록 만들어줍니다.
▷ 현재 컬럼명은 nowdate이지만 date라는 이름으로 출력하게 만들어줍니다.(as 표현할 컬럼명)


◎ 예시

SELECT DATE_FORMAT(nowdate, '%Y-%m-%d') AS date FROM board WHERE YEAR(nowdate) = 2021;


board 테이블에 nowdate라는 컬럼이 있다면 출력 형식을 '2023-06-14'와 같이 변경하고
    nowdate의 년도가 '2021'인 조건만 출력합니다.

 

◎ format에서 사용할 수 있는 형식 문자열 예시

NO 문자열 표현 방식
1 '%Y'  4자리 연도(예 : 2023)
2 '%y'  2자리 연도(예 : 23)
3 '%m'  2자리 월(01~12)
4 '%c'  월(1~12)
5 '%d'  2자리 일(01~31)
6 '%e'  일(1~31)
7 '%H'  24시간 형식의 시간(00~23)
8 '%h'  12시간 형식의 시간(01~12)
9 '%i'  2자리 분(00~59)
10 '%s'  2자리 초(00~59)
11 '%p'  AM 또는 PM

 

◎ 시간 포맷팅 추가 예시

-- yyyy-mm-dd 형식으로 날짜 포맷팅
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');

-- mm/dd/yyyy 형식으로 날짜 포맷팅
SELECT DATE_FORMAT(NOW(), '%m/%d/%Y');

-- yyyy년 mm월 dd일 형식으로 날짜 포맷팅
SELECT DATE_FORMAT(NOW(), '%Y년 %m월 %d일');

-- hh:mm:ss AM/PM 형식으로 시간 포맷팅
SELECT DATE_FORMAT(NOW(), '%h:%i:%s %p');

 

 

2. 날짜 및 시간 관련 함수

   ▷ 날짜 및 시간을 다양한 형태로 출력할 때 사용하는 쿼리문

   ▷ YEAR(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND(), NOW(), DURDATE(), CURTIME()

 

◎ 사용법

-- 1. YEAR(date) : 주어진 날짜에서 연도를 추출합니다.

SELECT YEAR('2023-06-14'); -- 결과는 2023입니다.



-- 2. MONTH(date) : 주어진 날짜에서 월을 추출합니다.

SELECT MONTH('2023-06-14'); -- 결과는 6입니다.



-- 3. DAY(date) : 주어진 날짜에서 일을 추출합니다.

SELECT DAY('2023-06-14'); -- 결과는 14입니다.



-- 4. HOUR(datetime) : 주어진 날짜와 시간에서 시간을 추출합니다.

SELECT HOUR('2023-06-14 15:30:45'); -- 결과는 15입니다.



-- 5. MINUTE(datetime) : 주어진 날짜와 시간에서 분을 추출합니다.

SELECT MINUTE('2023-06-14 15:30:45'); -- 결과는 30입니다.



-- 6. SECOND(datetime) : 주어진 날짜와 시간에서 초를 추출합니다.

SELECT SECOND('2023-06-14 15:30:45'); -- 결과는 45입니다.



-- 7. NOW() : 현재 날짜와 시간을 반환합니다.

SELECT NOW(); -- 결과는 현재 날짜와 시간을 나타냅니다.



-- 8. CURDATE() : 현재 날짜를 반환합니다.

SELECT CURDATE(); -- 결과는 현재 날짜를 나타냅니다.



-- 9. CURTIME() : 현재 시간을 반환합니다.

SELECT CURTIME(); --결과는 현재 시간을 나타냅니다.

 

DATE_FORMAT으로 날짜를 원하는 표현 방식으로 바꿀 수 있네요!!

또한 다른 날짜 및 시간 함수들을 통해서 원하는 값만 출력할 수도 있어요!!

 

아무래도 날짜가 시간, 분, 초까지 나타나면 출력 값이 너무 길어지니 보고 싶은 형태로만 출력할 수 있도록 하는 것도 중요하겠네요~

 

다음 시간에도 SQL에 대해서 계속 정리해볼게요~~!!!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

728x90
반응형