SQL

[SQL]날짜 데이터 가져오기(DATE_FORMAT, YEAR)

ollive 2024. 7. 3. 11:53

<문제>

BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요.
결과는 출판일을 기준으로 오름차순 정렬해주세요.

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

<풀이1: DATE_FORMAT(날짜형식데이터) >

먼저, 가장 잘 아는 방식은 DATE_FORMAT(날짜형식데이터)를 사용하여 필요한 일자까지만 가져오는 것이다. 

-- 코드를 입력하세요
SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, "%Y-%m-%d")
FROM BOOK
WHERE DATE_FORMAT(PUBLISHED_DATE,'%Y') = 2021
    AND CATEGORY = '인문'
ORDER BY PUBLISHED_DATE

 

<풀이 YEAR(날짜시간변수)>

YEAR을 통해 년도만 추출할 수 있어 DATE_FORMAT의 복잡한 식을 줄일 수 있었다. 또한 같은 방식으로 MONTH( )와 DAY( ) 도 사용 가능했다.

SELECT BOOK_ID, PUBLISHED_DATE
FROM BOOK
WHERE year(PUBLISHED_DATE) = 2021
ORDER BY PUBLISHED_DATE