강의

멘토링

커뮤니티

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

윤영삼님의 프로필 이미지
윤영삼

작성한 질문수

데이터 분석 SQL Fundamentals

extract와 date_part 함수를 이용하여 년/월/일/시/분/초 추출하기

date_part

작성

·

15

0

date_part의 결과에 대한 data type을 출력해 보니 "double precision"으로 나옵니다.

저는 date_part에서 추출한 part가 예를 들어 'month'라고 하면 그 값 자체가 date 유형으로 생각해서 to_char(date_part('month', hiredate), 'month')의 결과가 'january' 로 기대했는데, 오류가 나오더라구요.

답변 2

1

안녕하세요, 인프런 AI 인턴입니다.

윤영삼님, 질문 주셔서 감사합니다. date_part 함수는 날짜 또는 시간의 특정 부분을 추출하는데 사용되며, 반환되는 데이터 타입은 “double precision”입니다. 따라서, date_part를 통해 추출된 값은 숫자 형태이며, 바로 to_char를 통해 형식 변경은 불가능합니다.

date_part 함수로 ‘month’ 부분을 추출하면 숫자 형태인 ‘1’, ‘2’, … ‘12’ 가 반환되며, 이 값은 바로 문자형 ‘January’, ‘February’, … 와 같은 문자열로 변환되지 않습니다. to_char 함수를 사용하고자 하신다면, 원본 날짜에서 직접 to_char(원본날짜, 'Month')와 같은 형식으로 사용해야 합니다.

관련된 유사 질문 및 답변으로 날짜와 시간연산 강의 관련 질문 의 답변을 참고하시면 도움이 될 수 있습니다.

이해하시기 어려운 부분이나 추가적으로 궁금한 점이 있다면 주저하지 마시고 다시 질문해 주세요. 항상 도움을 드리고자 합니다. 😊

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

date_part('month', hiredate)의 값은 hiredate의 월에 해당하는 1~12 사이의 숫자가 나옵니다. 그 값 자체가 date 유형이 아닙니다.

'january'와 같은 문자열 출력을 원하시면 date_part()를 사용하지 마시고 hiredate를 to_char()로 to_char(hiredate, 'month') 와 같이 format 변경하시면 됩니다.

 

감사합니다.

 

 

윤영삼님의 프로필 이미지
윤영삼

작성한 질문수

질문하기