Redshift : to_timestamp() (timestamp로 변환)
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
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으로 표시된 것을 볼 수 있습니다.