DATE() / DATETIME() / TIMESTAMP() / TIME()
Query 1: DATE 함수 활용
SELECT
DATE(2016, 12, 25) AS date_ymd,
DATE(DATETIME('2016-12-25 23:59:59')) AS date_dt,
DATE(TIMESTAMP '2016-12-25 05:30:00+07', 'America/Los_Angeles') AS date_tstz;
Explanation:
- DATE(연, 월, 일): 지정한 연도, 월, 일을 기준으로 DATE 객체를 생성합니다.
- DATETIME: 시간 포함 데이터에서 날짜 부분만 추출합니다.
- TIMESTAMP: 특정 시간대 기준으로 날짜를 변환합니다.
- Reference: 한국 시간대 →
'Asia/Seoul'
Result:
| date_ymd | date_dt | date_tstz |
|---|
| 2016-12-25 | 2016-12-25 | 2016-12-24 |
Query 2: DATETIME 함수 활용
SELECT
DATETIME(2008, 12, 25, 05, 30, 00) AS datetime_ymdhms,
DATETIME(TIMESTAMP "2008-12-25 05:30:00+00", "America/Los_Angeles") AS datetime_tstz;
Explanation:
- DATETIME(연, 월, 일, 시, 분, 초): 지정한 연도, 월, 일과 시간 정보를 사용하여 DATETIME 객체를 생성합니다.
- TIMESTAMP + 시간대: 특정 시간대 기준으로 DATETIME을 변환합니다.
Result:
| datetime_ymdhms | datetime_tstz |
|---|
| 2008-12-25T05:30:00 | 2008-12-24T21:30:00 |
주요 개념 정리
- DATE: 날짜 정보만 포함 (연-월-일).
- DATETIME: 날짜와 시간 정보 포함 (연-월-일T시:분:초).
- TIMESTAMP: 시간대(Timezone)를 포함한 UTC 시간.
- TIME: 시간 정보만 포함 (시:분:초).
실습 팁
- 빅쿼리에서 시간대 설정은 데이터 해석과 변환에 매우 중요합니다.
- 날짜와 시간 데이터를 다룰 때 데이터의 출처와 사용 목적에 따라 적절한 함수(DATE, DATETIME, TIMESTAMP 등)를 선택하세요.