본문 바로가기
데이터분석/SQL

[BigQuery] event_date 날짜 형식 변경 방법

by 코듀킹 2024. 2. 25.

BigQuery의 event_date 날짜 형식을 보면, 20240225 이런식으로 되어있는 걸 볼 수 있다. 이러한 날짜 형식을 변경하고 싶을 때 사용할 수 있는 문법을 정리해봤다.

 

 

1. PARSE_DATE(format_string, date_string)

이 함수는 텍스트 형식의 날짜형태를 날짜 형식으로 바꾸는 함수이다. format_string 부분에는 원본 데이터의 날짜형태를 그대로 입력해주어야한다. 예를 들어 event_date의 형태가 20240225이었기 때문에 아래와 같이 %Y%m%d 형태로 작성해주는 것이다. 다른 예시로 event_date의 형태가 24/02/25 였다면, format_string 부분에 %y/%m/%d 형태로 작성해야한다.

PARSE_DATE('%Y%m%d',event_date)

결과 : 2024-02-25

 

 

2. FORMAT_DATE(format_string, date_expration)

날짜 형식을 원하는 형태로 커스터마이징 하고 싶을 때, 사용할 수 있는 함수이다. 아래와 같이 '년, 월'만 출력하고 싶다고 하면, 거기에 맞는 format_string만 작성해주면 된다.

FORMAT_DATE('%Y-%m', DATE (PARSE_DATE('%Y%m%d',event_date)))

결과 : 2024-02

 

 

응용

SELECT
  CONCAT(
    FORMAT_DATE('%m.%d', DATE_ADD(PARSE_DATE('%Y%m%d',event_date), INTERVAL - MOD(EXTRACT(DAYOFWEEK FROM PARSE_DATE('%Y%m%d',event_date)) + 5, 7) DAY)),
    '~',
    FORMAT_DATE('%m.%d', DATE_ADD(PARSE_DATE('%Y%m%d',event_date), INTERVAL 6 - MOD(EXTRACT(DAYOFWEEK FROM PARSE_DATE('%Y%m%d',event_date)) + 5, 7) DAY)),
    '(',
    IF(EXTRACT(DAYOFWEEK FROM PARSE_DATE('%Y%m%d',event_date)) = 1, CAST(EXTRACT(WEEK FROM PARSE_DATE('%Y%m%d',event_date)) AS STRING), CAST(EXTRACT(WEEK FROM PARSE_DATE('%Y%m%d',event_date)) + 1 AS STRING)),
    '주차)'
  ) AS formatted_week, event_date
FROM `프로젝트ID.events_*`

결과 : 02.19~02.25(8주차)

댓글