- BigQuery에서 UTC를 한국표준시(KST)로 변환하는 방법에 관한 글입니다.
배경
- BigQuery는 기본적으로 UTC를 사용함.
- 한국표준시(KST)는 UTC와 9시간 차이.
- 따라서 UTC로 저장된 데이터를 KST로 바꾸려면 +9시간을 해야 함.
방법
DATETIME(datetime_value, 'Asia/Seoul')
- time_value에 해당 값 또는 컬럼을 넣고
- 두 번째 전달인자에 'Asia/Seoul'을 넣으면 KST로 변환됨.
주의
- 사실 DATETIME(datetime_value, 'Asia/Seoul') 이 방식은 UTC를 KST로 바꿔주는 게 아니라, datetime_value에 +9시간을 해주는 것임.
- 둘 다 똑같다고 생각할 수 있지만, datetime_value가 이미 KST라면, KST에 또 +9시간을 하는 실수를 할 수 있음.
- 따라서 datetime_value가 UTC인지 아니면 이미 KST로 변환된 값인지 꼭 확인할 필요가 있음.
- 예를 들어 아래와 같이, 2020년 1월 1일 00시 00분 00초를 위와 같은 방식으로 하면, 2020년 1월 1일 09시 00분 00초의 값을 반환함.
# 쿼리
SELECT DATETIME(TIMESTAMP('2020-01-01 00:00:00'), 'Asia/Seoul')
# 결과값
2020-01-01T09:00:00
참고문서
감사합니다 퍼가요 ~