안녕하세요~ 오늘도 프로그래머스 문제들을 풀어보면서 공부한 쿼리문들에 관해서 정리해보겠습니다~!!
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에 대해서 계속 정리해볼게요~~!!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~