Yours Ever, Data Chronicles

[Postgresql] How to convert epoch to timestamp 본문

Skillset/SQL

[Postgresql] How to convert epoch to timestamp

Everly. 2025. 1. 26. 16:04

GA4에서 event_timestamp는 연-월-일-시에 대한 시간 데이터를 unix time형태로 제공한다.

이를 연-월-일-시로 바꿔서 보기 위해선 다음 사이트에서 변환이 가능하다.

 

Epoch Converter

 

Epoch Converter

Convert Unix Timestamps (and many other date formats) to regular dates.

www.epochconverter.com

 

근데 우리는 하나의 시간만 변환할 것은 아니므로 쿼리를 통해 epoch 를 timestamp로 변환해야 한다.

timestamp 'epoch' + event_timestamp * interval '1 second'

 

보통은 위와 같이 하면 timestamp 형태로 변환된다.

그러나 이런 에러가 뜰 것이다.

 

그 이유는 postgresql 에서는 to_timestamp() 가 마이크로초가 아닌 초 단위의 에포크를 가정하기 때문이다.

⇒ 즉, 변환을 위해서 1000000 만큼 나눠줘야 한다!! (10^-6승)

SET json_serialization_enable TO true;
select event_date 
		, event_timestamp 
		, timestamp 'epoch' + CAST(event_timestamp AS BIGINT)/1000000 * interval '1 second'
from spectrum_ga.ga4_events
where user_id is not null
limit 100;

 

 

위와 같이 변환 완료!

 

Refrence : https://dba.stackexchange.com/questions/225386/error-timestamp-out-of-range-converting-epoch-stored-as-bigint-to-a-timestamp

반응형