CODING TEST/MySQL
Lv1 - 조건에 맞는 도서 리스트 출력하기
iamyuunzo
2025. 7. 16. 20:00
📌 문제 정보
- 문제 이름 : 프로그래머스 - (SELECT) 조건에 맞는 도서 리스트 출력하기
- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/144853
📌 문제 요약
- BOOK 테이블 : BOOK_ID(도서ID), CATEGORY(카테고리), AUTHOR_ID(작가ID), PRICE(가격), PUBLISHED_DATE(출판일)
- BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성. 결과는 출판일을 기준으로 오름차순 정렬해주세요.
예시)
| BOOK_ID | CATEGORY | AUTHOR_ID | PRICE | PUBLISHED_DATE |
| 1 | 인문 | 1 | 10000 | 2020-01-01 |
| 2 | 경제 | 2 | 9000 | 2021-02-05 |
| 3 | 인문 | 2 | 11000 | 2021-04-11 |
| 4 | 인문 | 3 | 10000 | 2021-03-15 |
| 5 | 생활 | 1 | 12000 | 2021-01-10 |
출력)
| BOOK_ID | PUBLISHED_DATE |
| 4 | 2021-03-15 |
| 3 | 2021-04-11 |
📌 내 풀이 및 코드
SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE,"%Y-%m-%d")PUBLISHED_DATE
FROM BOOK
WHERE CATEGORY = '인문'
AND YEAR(PUBLISHED_DATE) = 2021
ORDER BY PUBLISHED_DATE ASC;
📌 새로 배운 문법
<-- 이번 문제에서 새로 배운 Java 문법 정리 -->
** DATE_FORMAT() 계속 헷갈려서 다시 정리 **
- DATE_FORMAT(날짜컬럼, '형식문자열')
- 날짜컬럼: DATE, DATETIME, TIMESTAMP 타입의 컬럼 또는 날짜 값
- 형식문자열: 어떤 형식으로 날짜를 출력할지 지정하는 패턴
| 포맷코드 | 의미 | 예시 출력 |
| %Y | 4자리 연도 | 2021 |
| %y | 2자리 연도 | 21 |
| %m | 2자리 월 (01~12) | 03 |
| %d | 2자리 일 (01~31) | 09 |
| %H | 시 (00~23) | 14 |
| %i | 분 (00~59) | 30 |
| %s | 초 (00~59) | 45 |