시간을 기준으로 데이터를 가져오는 것
집계함수와 함께 가장 기본이 되는 데이터 분석 스킬
ex) 지난 한 달간 카드 사용 내역, 겨울 시즌 가장 반품이 많은 물품, 휴가철에 가장 많이 팔린 비행기 표 etc...
자주 사용되는 3가지 방법
비교 연산자(Compaarison Operators) | EXTRACT() | TO_CHAR()
// TZ(TIME ZONE)
영국을 기준으로 한 시간 차이
SELECT
created_at, -- TIMESTAMPTZ
EXTRACT(YEAR FROM created_at), -- 년도
EXTRACT(MONTH FROM created_at), -- 월
EXTRACT(DAY FROM created_at), -- 일
EXTRACT(HOUR FROM created_at), -- 시
EXTRACT(MINUTE FROM created_at), -- 분
EXTRACT(SECOND FROM created_at), -- 초
EXTRACT(TIMEZONE_HOUR FROM created_at), -- 타임존 시
FROM
테이블명
WHERE
조건
SELECT
created_at, -- TIMESTAMPTZ
TO_CHAR(created_at, 'YYYY-MM-DD'), -- 날짜1
TO_CHAR(created_at, 'YYYY/MM/DD'), -- 날짜2
TO_CHAR(created_at, 'HH24:MI:SS'), -- 시간
TO_CHAR(created_at, 'TZH') -- 타임존 시
FROM
테이블명
WHERE
조건
SELECT
SUM(amount)
FROM
transactions
WHERE
created_at >= '2022-01-01' -- 1월 1일 이후의 데이터
AND
created_at < '2022-02-01'
;
-- 2021년 12월의 순수익
SELECT
-- EXTRACT() : 시간값에서 특정 속성을 숫자로 추출!
-- 2021-12-01 10:00:21+09 => YEAR(2021)
-- 2021-12-01 10:00:21+09 => MONTH(12)
SUM(amount)
FROM
transactions
WHERE
EXTRACT(YEAR FROM created_at) = 2021
AND
EXTRACT(MONTH FROM created_at) = 12;
-- 2021년 11월의 순수익
SELECT
SUM(amount)
FROM
transactions
WHERE
-- TO_CHAR() : 특정값을 다양한 형식 문자로 바꿔!
-- 2021-11-01 10:02:48+09 => '2021-11'
TO_CHAR(created_at, 'YYYY-MM') = '2021-11';
-- 2021년 11월과 2022년 1월의 합산 순수익
SELECT
SUM(amount)
FROM
transactions
WHERE
TO_CHAR(created_at, 'YYYY-MM') = '2021-11'
OR
TO_CHAR(created_at, 'YYYY-MM') = '2022-01';