SQL

SQL 날짜 & 시간 연산자, 날짜 & 시간 함수

봄다온 2025. 1. 20. 15:12

연산자

# 날짜 + 정수
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

'SQL' 카테고리의 다른 글

SQL 패턴매칭 연산자  (0) 2025.01.20
SQL 서브쿼리 연산자  (0) 2025.01.20
SQL JSON 생성,처리 함수  (1) 2025.01.20
SQL 배열 연산자  (0) 2025.01.20
SQL COALESCE 함수  (0) 2025.01.20