본문 바로가기

Wiki/SQL

BigQuery의 FORMAT_DATETIME 함수 사용 방법

  • 빅쿼리FORMAT_DATETIME 함수에 관한 글입니다.
  • FORMAT_DATETIME 함수는 빅쿼리에서 가장 많이 사용되는 함수 중 하나입니다.

FORMAT_DATETIME은 어떤 함수인가요?

  • DATETIME 데이터의 형식을 변환하는 함수입니다.
  • 이 함수를 이용하여 초, 분, 시간, 일자, 주차 등 원하는 형태로 데이터를 가공할 수 있습니다.
  • 입력값의 데이터 형태는 DATETIME이어야 하고, 반환값은 문자열 형태로 반환됩니다.

Input / Output

입력값의 데이터 형태는 DATETIME이어야 하고, 반환값은 문자열 형태로 반환됩니다.

  • Input : DATETIME
  • Output : STRING

어떻게 사용해야 하나요?

아래의 방식으로 사용할 수 있습니다.

FORMAT_DATETIME(format_string, datetime_expression)
  • format_string에는 어떤 형태로 가공하고 싶은지를 입력합니다.
  • datetime_expression에는 입력되는 데이터를 넣습니다.

사용 예시입니다

CURRENT_DATETIME만 썼을 때와 FORMAT_DATETIME까지 썼을 때를 비교해보았습니다.

1) CURRENT_DATETIME만 썼을 때

  • 기본적으로 DATE와 TIME 사이에 ‘T’라는 문자가 삽입됩니다.
  • 불필요한 밀리세컨드까지 출력됩니다.

CURRENT_DATETIME으로 현재 일시 출력

2) CURRENT_DATETIME과 FORMAT_DATETIME을 함께 썼을 때

  • FOTMAT_DATETIME에서 지원하는 형식 요소 중 DATE를 의미하는 `%F` 와 TIME을 의미하는 `%X` 를 사용했습니다.
  • DATE와 TIME 사이에 ‘T’문자가 사라졌습니다.
  • 밀리세컨드 단위는 제외했습니다.

CURRENT_DATETIME으로 현재 일시 출력 후 FORMAT_DATETIME으로 변환

빅쿼리에서 지원하는 형식 요소

아래는 빅쿼리에서 지원하는 FORMAT_DATETIME 함수의 형식 요소 중 일부입니다. 자주 쓰는 것들을 모아둔 것이고, 자세한 내용은 공식문서에서 확인할 수 있습니다. 

형식 요소 설명 예시
%Y 연도를 4자리로 표현한 형태입니다. 2022
%m 월을 10진수로 표현한 형태입니다. 01
%d 일을 10진수로 표현한 형태입니다. 31
%H 시간을 10진수로 표현한 형태입니다. 12
%M 분을 10진수로 표현한 형태입니다. 59
%S 초를 10진수로 표현한 형태입니다. 59
%F 일자를 %Y-%m-%d 형태로 표현한 것입니다. 2022-01-31
%X 시, 분, 초를 %H:%M:%S 형태로 표현한 것입니다. 10:12:59

참고 문서