728x90
MYSQL에서 %Y는 4자리 수의 연도, %y는 2자리 수의 연도를 출력합니다.
SELECT B.TITLE, B.BOARD_ID,
R.REPLY_ID, R.WRITER_ID, R.CONTENTS,
DATE_FORMAT(R.CREATED_DATE, "%Y-%m-%d") AS CREATED_DATE
FROM USED_GOODS_BOARD AS B
JOIN USED_GOODS_REPLY AS R
ON B.BOARD_ID = R.BOARD_ID
WHERE DATE_FORMAT(B.CREATED_DATE, "%Y-%m") = "2022-10"
ORDER BY R.CREATED_DATE ASC, B.TITLE ASC;
문제의 조건이 USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 자료들을 출력하라 했으니 둘의 공통된 내용 중에 출력해야 해서 join(=inner join)으로 범위를 좁혀주고, 날짜는 DATE_FORMAT() 함수를 사용합니다. ORDER_BY 명령어를 이용해 USED_GOODS_REPLY 테이블의 댓글 작성일인 CREATED_DATE로 오름차순 정렬을 해주고, USED_GOODS_BOARD 테이블의 제목인 TITLE로 오름차순 정렬을 해준다.
그리고 SELECT 문의 마지막에 CREATED_DATE를 DATE_FORMAT() 함수를 이용해 %Y-%m-%d로 변환해 준다. 변환해 주지 않으면 연월일시분초가 그대로 출력되기 때문에 문제에서 원하는 예시에 맞추기 위해서는 DATE_FORMAT() 함수를 사용해 주어야 한다.
728x90
'[Coding Test] > [SQL]' 카테고리의 다른 글
[SQL] 프로그래머스/SQL lv1 조건에 맞는 도서 리스트 출력하기 (0) | 2024.03.12 |
---|---|
[SQL] 프로그래머스/SQL lv1 평균 일일 대여 요금 구하기 (0) | 2024.03.12 |
[SQL] 프로그래머스/SQL lv1 자동차 대여 기록에서 장기/단기 대여 구분하기 (1) | 2024.03.12 |
[SQL] SQL의 if문 CASE문에 대하여 (1) | 2024.03.12 |
[SQL] 프로그래머스/SQL lv1 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2024.03.11 |