SQL/Redshift

Redshift : to_timestamp() (timestamp로 변환)

CosmosProject 2023. 10. 10. 21:50
728x90
반응형

 

 

 

to_timestamp() 함수는 날짜/시간 형태의 문자열이나 timestamp type의 데이터를 받아 원하는 timestampz로 변환합니다.

 

 

 

Syntax

to_timestamp(timestamp/timestamp_string, format)

 

- timestamp/timestamp_string

timestamp로 type을 변환할 대상 timestamp 또는 날짜/시간 형태의 문자열을 전달합니다.

 

- format

timestamp/timestamp_string 이 어떤 형태를 가지고 있는지에 대한 pattern을 의미합니다.

 

 

 

 

 

 

 

select  to_timestamp('20230101_082739', 'yyyymmdd_HH24MISS')



-- Result
2023-01-01 08:27:39.000000 +09:00

 

to_timestamp의 첫 번째 인자로 '20230101_082739' 라는 문자열이 전달되었습니다.

이는 2023년 1월 1일 8시 27분 39초를 의미합니다.

 

따라서 두 번째 인자인 pattern을 yyyymmdd_HH24MISS로 적었습니다.

 

- 참고

pattern으로 사용할 수 있는 특수 기호들은 아래 링크를 참고하면 됩니다.

https://cosmosproject.tistory.com/154

 

Redshift : to_date (문자를 날짜로 변환)

to_date(date_str, date_format) to_date는 위처럼 2개의 parameter를 받습니다. date_str = 날짜를 의미하는 텍스트(이 값의 date type은 날짜가 아닙니다.) date_format = date_str의 날짜 format 바로 한번 예시를 봅시다. s

cosmosproject.tistory.com

 

 

 

 

select  to_timestamp('2023', 'yyyy')



-- Result
2023-01-01 00:00:00.000000 +09:00

timestamp string으로 2023만을 전달했습니다.

2023은 2023년을 의미하므로 pattern도 yyyy를 전달했죠.

 

이렇게 년도만 전달되고 월/일/시/분/초 정보가 없으면 해당 연도의 가장 첫 시점으로 출력해줍니다.

 

 

 

 

select  sysdate
        , to_timestamp(sysdate, 'yyyy-mm-dd HH24:MI:SS)



-- Result
2023-10-09 20:21:57.291743
2023-10-09 20:21:57.000000 +09:00

to_timestamp의 첫 번째 인자는 timestamp string이어야만 할 필요는 없습니다.

현재 system의 시간을 timestamp로 출력해주는 sysdate를 첫 번째 인자로 전달해봤습니다.

 

마찬가지로 그 결과는 timestamp이며 다만 millisecond는 사라지고 000000으로 표시된 것을 볼 수 있습니다.

 

 

 

 

 

 

728x90
반응형