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주차)
'데이터분석 > SQL' 카테고리의 다른 글
[해커랭크] SQL 심화 응용 팁들 (1) | 2024.09.24 |
---|---|
MySQL 다운로드 및 설치하는 방법 (1) | 2024.03.10 |
[BigQuery] 신규사용자가 첫 접속날짜에 남긴 이벤트만 필터링 (0) | 2024.02.25 |
파이썬에서 MySQL 쿼리로 DB 데이터 끌어오는 방법 (0) | 2023.12.17 |
MySQL 내장 함수 53가지 정리 (숫자, 문자, 날짜, 논리, 집계) (0) | 2023.11.23 |
댓글