지난 글에서 DATE_FORMAT이라는 함수를 통해 날짜의 출력형식을 내가 다루고 싶은 형태로 만드는 법을 배웠습니다. 이번글에는 그에 이어 날짜 다루는 다양한 다른 함수들에 대해 배워보는 시간을 가져보겠습니다.
📅 원하는 날짜정보 추출_(EXTRACT)
우리는 날짜를 다루다 보면 특정일이 어떤 요일인지 몇 번째 주인지 확인해야 하는 필요성을 느끼게 됩니다. 그럴 때 사용할 수 있는 함수에는 EXTRACT라는 함수가 있습니다. 함수 이름에서도 확인할 수 있는 것처럼 날짜 컬럼에서 우리가 원하는 정보를 추출해 내는 기능을 합니다.
문법은 다음과 같습니다.
SELECT EXTRACT(원하는 정보 FROM 날짜 컬럼)
FROM dual
문법에서처럼 특정 컬럼으로부터 내가 원하는 정보를 꺼내겠다는 형태로 작성할 수 있으며 날짜 컬럼을 통해서 추출할 수 있는 정보는 아래와 같습니다.
매개변수 값 | 설명 |
YEAR | 년 |
MONTH | 월 |
WEEK | 주(0~53) 주 시작은 월요일 |
DAY | 날짜 |
QUARTER | 분기 |
DAYOFWEEK | 요일 일요일부터 토요일까지 1~7로 표현 |
위에 나열한 것 외에도 다양한 정보들을 추출할 수 있으니 필요한 것들이 있다면 링크를 타고 들어가서 확인할 수 있습니다.
📅 날짜 더하고 빼기_(DATE_ADD)
데이터를 다루는데 날짜를 더하는 일이 필요한가 싶을 수 있지만 생각보다 많이 활용하게 되는 함수입니다. 특히, 리텐션 쿼리를 다루거나 조회하고자 하는 날짜를 최근 n일, n개월처럼 다이나믹하게 활용할 수 있습니다.
문법은 다음과 같습니다.
SELECT DATE_ADD(날짜 컬럼, INTERVAL n 날짜 단위)
FROM dual
위 INTERVAL 옆 n은 숫자가 들어가는 영역이며 날짜변수에는 내가 원하는 날짜의 기간을 지정할 수 있습니다. n과 날짜 단위는 항상 함께 해야하며 INTERVAL 1 DAY 는 하루를 더하고 INTERVAL 1 MONTH는 한 달을 더하는 형식입니다.
입력할 수 있는 날짜 단위에는 다음과 같은 것들이 있으며 자주 쓰이는 것들입니다. 나열된 것 외에 다른 단위들도 존재하기 때문에 필요하다면 구글링을 통해 정보를 확인할 수 있습니다.
날짜 단위 | 설명 |
DAY | 날짜를 더한다 |
MONTH | 개월을 더한다 |
YEAR | 년을 더한다 |
WEEK | 주를 더한다 |
날짜를 빼주는 DATE_SUB라는 함수도 존재합니다만 DATE_ADD 함수를 입력하고 n 앞에 마이너스 기호를 붙여 INTERVAL -n 날짜변수를 동일한 기능을 하기 때문에 굳이 설명하지 않겠습니다.
SELECT DATE_ADD(날짜 컬럼, INTERVAL -n 날짜변수)
FROM dual
📅 날짜 사이 차이 구하기_(DATE_DIFF)
두 날짜간의 차이를 구하는 함수인 DATE_DIFF 도 존재합니다. 특정 유저의 구매 주기나 가입 후 얼마나 지났는지 등을 확인할 때 자주 쓰이는 함수입니다.
문법은 다음과 같습니다.
SELECT DATE_DIFF(날짜 컬럼1, 날짜 컬럼2, 날짜 단위)
FROM dual
입력할 수 있는 날짜 단위는 위에 나열한 DATE_ADD의 날짜 단위와 거의 동일합니다.
날짜 단위 | 설명 |
DAY | 날짜를 더한다 |
MONTH | 개월을 더한다 |
YEAR | 년을 더한다 |
WEEK | 주를 더한다 |
-- 구매일로 부터 며칠이 지났는지 확인할 수 있다.
SELECT DATE_DIFF(NOW(), 구매일자, DAY)
FROM dual
'데이터분석' 카테고리의 다른 글
[SQL] DATE_FORMAT_일,월,년별 집계하기 (0) | 2024.02.21 |
---|---|
[SQL] IF,IFNULL,COALECSE, CASE 조건문 활용법 (0) | 2024.02.16 |
[SQL 기본] 예제_프로모션 페이백 대상자 선정 (0) | 2024.02.16 |
[SQL 기본] 예제_마케팅 채널 최적화(2) (0) | 2024.02.08 |
[SQL 기본] 예제_마케팅 채널 최적화 (1) | 2024.02.07 |