해결된 질문
작성
·
292
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
감사합니다.
select to_date(2022||'-'||01||'-'||01, 'yyyy-mm-dd') as str_to_date
와우... 이런 방식으로도 표현이 가능하군요.
답변 너무너무 감사합니다.