인프런 커뮤니티 질문&답변

minsubrother님의 프로필 이미지
minsubrother

작성한 질문수

[SQL Quest] 실전 문제 풀이로 SQL 역량 강화 하기 (Basic)

Quest 1-2

3분 20초 FORMAT_DATE 반환 타입에 관하여

해결된 질문

작성

·

323

·

수정됨

1

 [기타 질문]선생님 3분 20초 쯤에, FORMAT_DATE('%Y', date)에 대한 주석 문에 대해서 int형이 아닌 String형으로 표시를 해야 할 것 같습니다.

date between '2022-01-01' and '2022-12-31' -- 2022 
-- date between '2022-01-01' and '2022-12-31' EXTRACT(YEAR FROM date) = 2022 -- 2022 
-- EXTRACT(YEAR FROM date) -> int로 나온다. 
-- EXTRACT(날짜 단위 from 날짜 필드) FORMAT_DATE('%Y', date) = '2022' -- 2022

선생님께서 알려주신 3가지 방법으로 모두 적용해보니,

SELECT EXTRACT(YEAR FROM date), FORMAT_DATE('%Y', date) FROM project.daily_play WHERE (EXTRACT(YEAR FROM date) = 2023 AND mode = 3) OR (EXTRACT(YEAR FROM date) = 2022 AND mode = 4) 

이런 식으로 나오더라구요. EXTRACT의 반환 값은 int형(숫자형)이 나오고, FORMAT_DATE이나 FORMAT_DATETIME의 경우 반환 값은 String 형태로 나오는 것 같습니다. 

답변 1

0

WHIZ님의 프로필 이미지
WHIZ
지식공유자

안녕하세요

FORMAT_DATE는 STRING 타입으로 데이터를 반환하는 것이 맞습니다 🙂 따라서 작성하신 주석처럼 FORMAT_DATE('%Y', date) = '2022' 로 작업하여야 정상적으로 출력됩니다.

강의에서는 예를 들어 설명하다보니 그 부분이 누락된 것 같습니다. 해당 부분은 반영하여 강의에 표기 예정입니다! 확인 감사해요!

minsubrother님의 프로필 이미지
minsubrother

작성한 질문수

질문하기