연산자
# 날짜 + 정수
select date '2020-07-15' + integer '7' as result; ㅡ> 2020-07-22
# 날짜 + 시간
select date '2020-07-15' + time '13:00' as result; ㅡ> 2020-07-15 13:00:00
# 날짜 - 날짜
select date '2020-07-15' - date '2020-07-01' as result; ㅡ> 14
# 시간 - 시간
select time '13:00' - time '5:00' as result; ㅡ> 08:00:00 (INTERVAL 데이터 타입)
# 정수 * 시간 간격(INTERVAL)
select 60 * interval '1 second' as result; ㅡ> 00:01:00
# 시간 간격(INTERVAL) / 소수
select interval '1 hour' / float '1.2' as result; ㅡ> 00:50:00
함수
# 현재 날짜 정보
CURRENT_DATE
select current_date; ㅡ> 2025-01-20
# 현재 시간 + 시간대 정보
# 뒤의 인수에 따라 초의 소수점 자리수가 달라진다.
CURRENT_TIME(인수)
select current_time(1); ㅡ> 03:03:15.9+00
# 현재 날짜 및 시간 + 시간대 정보
CURRENT_TIMESTAMP(인수)
select current_timestamp(1) ㅡ> 2025-01-20 03:03:41.9+00
# 현재 시간
LOCALTIME(인수)
select localtime(1) ㅡ> 03:05:41.6
# 현재 날짜 + 시간
LOCAL TIMESTAMP
select localtimestamp; ㅡ> 2025-01-20 03:07:22.27228
# 기간 계산(현재 날짜 - 입력 날짜)
age(<timestamp값>)
select age(timestamp '2025-02-24'); ㅡ> -1 mons -4 days
select age(timestamp '2024-12-11'); ㅡ> 1 mon 9 days
# 시간에서 정보추출
EXTRACT(<필드값> FROM <날짜 및 시간 정보>)
select extract(month from timestamp '2020-09-20'); ㅡ> 9
필드값 목록: CENTURY, QUARTER, YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, ISODOW, DOW, TIMEZONE
date_part(<필드값>, <날짜 및 시간 정보>);
select date_part('quarter', now()); --> 1
# 시간에서 정보제거, 필드값 하위 정보를 0으로 만든다.
date_trunc(<필드값>, <날짜 및 시간 정보>)
select date_trunc('month',current_date); ㅡ> 2025-01-01 00:00:00+00