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

Dash Choi님의 프로필 이미지
Dash Choi

작성한 질문수

데이터 분석 SQL Fundamentals

date_trunc 함수 활용 실습

날짜와 시간연산 강의 관련 질문!

해결된 질문

작성

·

297

1

안녕하세요, 날짜와 시간연산 강의 내용 중 질문이 있습니다.

select date_part('year','2022-02-03 13:04:10'::timestamp) as year;

위 쿼리를 실행하였을 때, 결과값이 "2,022" 값이 숫자로 형태로 출력되는 걸 날짜 형식으로 변경 하려고 하는데 어떻게 하면 가능할까요?

to_date(date_part('year','2022-02-03 13:04:10'::timestamp),'yyyy') 으로 해도 날짜 형식으로 변경이 되지 않네요..ㅜㅜ

감사합니다.

 

답변 1

1

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

안녕하십니까,

그냥 숫자는 Date 형으로 변경이 안됩니다. 가령 2,022를 Date로 어떻게 변경해야 하는지 SQL로 지정해 줘야 하는데 단순 숫자는 어렵습니다.

물론 unix epoch time과 같이 1970년 1월 1일 부터 현재 까지의 시간을 초(second)로 변환하는 방법은 있지만 이건 원하시는 방법과 다릅니다. (가령 select to_timestamp(2022); 하면 1970년 1월 1일 14:37:02초가 나옵니다)

만약 2,022를 2022년 1월 1일로 Date를 설정하고자 한다면 문자열로 변경한 뒤에 이걸 to_date()로 변환해 주십시요.

select to_date(2022||'-'||01||'-'||01, 'yyyy-mm-dd') as str_to_date

 

감사합니다.

Dash Choi님의 프로필 이미지
Dash Choi
질문자

select to_date(2022||'-'||01||'-'||01, 'yyyy-mm-dd') as str_to_date

와우... 이런 방식으로도 표현이 가능하군요.

답변 너무너무 감사합니다.

 

 

Dash Choi님의 프로필 이미지
Dash Choi

작성한 질문수

질문하기