BigQuery의 날짜/시간 타입

BigQuery 입문

Matt Forrest

Field CTO

날짜와 시간이 중요한 이유

  1. 긴 데이터셋을 손쉽게 필터링
  2. 날짜/시간의 구성요소 추출
  3. 파티셔닝 전략
BigQuery 입문

Dates

DATE 데이터 타입 예시

SELECT 
    DATE(2010, 05, 19) as launch


/*------------* | launch | +------------+ | 2010-05-19 | *------------*/
BigQuery 입문

Timestamps

타임스탬프 예시:

SELECT 
    TIMESTAMP("2010-05-19 00:00:00+00") as launch


/*-------------------------* | launch | +-------------------------+ | 2010-05-19 00:00:00 UTC | *-------------------------*/
BigQuery 입문

Datetime과 Time

TIME과 DATETIME 예시:

SELECT
  TIME(12, 00, 00) as noon,

DATETIME(2019, 05, 19, 00, 00, 00) as launch
/*----------+----------------------* | noon | launch | +----------+----------------------+ | 12:00:00 | 2019-05-19T00:00:00 | *----------+----------------------*/
BigQuery 입문

날짜/타임스탬프 구성요소

일 단위

  • DAY, DAYOFWEEK, DAYOFYEAR.

주 단위

  • WEEK, WEEKDAY, ISOWEEK.

월/연도

  • MONTH, QUARTER, YEAR, ISOYEAR.

시간 단위

  • HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND.
1 https://cloud.google.com/bigquery/docs/reference/standard-sql/timestamp_functions#timestamp_trunc
BigQuery 입문

ADD, SUBTRACT, DIFF

5일 더하기

SELECT 
    DATE_ADD(DATE '2010-05-19', 
             INTERVAL 5 DAY) 
             AS five_days_later;

/*--------------------* | five_days_later | +--------------------+ | 2010-05-24 | *--------------------*/

차이 구하기

SELECT 
    DATE_DIFF(DATE '2010-05-24', 
             DATE '2010-05-19', DAY) 
             AS difference;


/*-------------* | difference | +-------------+ | 5 | *-------------*/
BigQuery 입문

EXTRACT

요일 찾기

SELECT 
    EXTRACT(DAYOFWEEK FROM DATE '2010-05-19') 
             AS day_of_week;


/*--------------* | day_of_week | +--------------+ | 4 | *--------------*/
BigQuery 입문

FORMAT

SELECT
    FORMAT_DATE(
      '%x', DATE '2010-05-19') 
    AS with_slashes;


/*--------------* | with_slashes | +--------------+ | 05/19/10 | *--------------*/
SELECT
    FORMAT_DATE(
      '%A', DATE '2010-05-19') 
    AS dow;

/*--------------* | dow | +--------------+ | Wednesday | *--------------*/
1 https://cloud.google.com/bigquery/docs/reference/standard-sql/format-elements#format_elements_date_time
BigQuery 입문

현재 날짜/타임스탬프

현재 타임스탬프 찾기:

SELECT
  CURRENT_TIMESTAMP(); 

/*---------------------------------*
 | current_timestamp               |
 +---------------------------------+
 | 2023-11-13 17:35:25.951432 UTC  |
 *---------------------------------*/

현재 날짜 찾기:

SELECT
  CURRENT_DATE();

/*---------------*
 | current_date  |
 +---------------+
 | 2023-11-13    |
 *---------------*/
BigQuery 입문

치트시트

데이터 타입

  • 날짜는 하루를, 타임스탬프는 절대적 날짜·시간을 나타냅니다.

날짜/타임스탬프 구성요소

  • 날짜/타임스탬프의 부분(예: MONTH, HOUR)

더하기/빼기

  • 날짜 부분을 더하거나 빼는 함수(예: DATE_ADD)

차이

  • 두 날짜의 차이를 단위별로 계산(예: TIMESTAMP_SUB)

추출과 서식

  • 날짜 부분 추출, 날짜 서식 지정(예: EXTRACT, FORMAT)

현재 날짜/타임스탬프

  • 현재 날짜 또는 타임스탬프 반환(예: CURRENT_TIMESTAMP)
BigQuery 입문

Ayo berlatih!

BigQuery 입문

Preparing Video For Download...