SQL [TS] #1 date_format

antaeo·2024년 7월 4일

[TS] Troubleshooting

목록 보기
1/1
post-thumbnail

프로그래머스 SQL 고득점 Kit

[TS] Troubleshooting

SELECT

- 조건에 맞는 도서 리스트 출력하기

<문제 설명>

문제 자체는 그리 어렵지 않은 편이다.
도서 ID(BOOK_ID) 와 출판일(PUBLISHED_DATE)를 출력하라 했으니
SELECT로 BOOK_ID와 PUBLISHED_DATE를 받아오면 된다.

요구 사항에서 BOOK 테이블 속
CATEGORY는 ‘인문' // PUBLISHED DATE 는 ‘2021’ 이므로

WHERE 절로 CATEGORY = ‘인문’ AND YEAR(PUBLISHED_DATE) = 2021 을 입력하면 된다.

따라서 내가 작성한 쿼리는 아래와 같았다.

SELECT BOOK_ID
     , PUBLISHED_DATE
   
FROM BOOK 
     
WHERE CATEGORY = '인문' AND YEAR(PUBLISHED_DATE) = 2021

ORDER BY PUBLISHED_DATE;

위 쿼리의 실행 결과는 다음과 같다.

문제 요구사항에 맞는 BOOK_ID와 PUBLISHED_DATE 를 잘 가져왔다.
하지만 채점 결과는 자꾸 오답 처리가 되었다.

놓친 부분이 있는지 다시 확인해 보고자 SELECT * (아스타)를 통해 모든 데이터를 확인해서 검토해 보았다. (다행히 테이블 내 데이터 값이 많지 않았다.)
검토를 해보았음에도 결과값은 위의 실행 결과와 동일했다.

로그래머스 버그인 줄 알고 코드도 다시 쳐보고,
safari ↔ chrome 계속 브라우저를 변경해서도 풀어봤다.

결국엔 문제 부분을 다시 보다가 해결 실마리를 찾았다.

내가 놓친 부분 + 해결

주의사항을 보니 PUBLISHED_DATE의 데이트 포맷이 예시와 동일해야 정답처리가 된다는 것 이었다.

즉, 실행 결과 값 내 PUBLISHED_DATE의 날짜 포맷이 예시처럼 ‘XXXX-XX-XX’ 여야 한다는 것.

내 기존 쿼리의 결과값을 보니 ‘XXXX-XX-XX’ 00:00:00 으로,
시간이 더해진 형태였다.

데이트 포맷을 동일하게 처리하기 위해 date_format 함수로 PUBLSIHED_DATE 컬럼 내 형태를 문제에서 요구하는 식으로 만들어 주고 컬럼명도 AS를 사용하여 다시 지정해 주었다.

SELECT BOOK_ID
     , date_format(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE

   
FROM BOOK 
     
WHERE CATEGORY = '인문' AND YEAR(PUBLISHED_DATE) = 2021

ORDER BY PUBLISHED_DATE;

결과 값이 예시에 나온 데이트 포맷과 동일하게 출력된 모습이다-!

간단한 문제인데 문제 요구사항을 제대로 못 본 탓에
엉뚱한 코드 탓, 프로그래머스 탓, 브라우저 탓을 해버렸다.

이제부터 예시 + 출력 값 주의깊게 비교해 보기!

그래도 정답은 기쁘다. 🎉

profile
매태오 : 매일 성장하는 태오

0개의 댓글