-
[SQL] 날짜 함수를 이용하여 특정 기간 데이터 조회하기Data Analysis/SQL 2023. 6. 16. 19:10반응형
Table of Contents
- Introduction
- MySQL 날짜 함수
- 날짜 함수를 활용한 데이터 조회
- Reference
Introduction
데이터베이스에서 데이터를 조회하고 이를 분석하고자 하는 일련의 과정이 과거에 비해 자연스러워짐에 따라 기업 내부에서 SQL을 능동적으로 사용하고 있다. 과거에는 데이터 분석가에게 잘 가공된 데이터를 제공해서 분석을 수행하고 결과물을 받아왔다면, 최근에는 직접 데이터베이스에서 조회 할 수 있는 권한 만 부여 받아 데이터를 자유롭게 분석할 수 있도록 하고 있다. 이에 따라 데이터 분석가에게 요구하는 기술로 자리를 잡아가고 있다. 다만, SQL의 기본 구조는 알기 때문에 특정 데이터베이스에 위치한 테이블을 조회하는데에는 무리가 없으나 각 데이터베이스의 함수의 이해도가 낮아 원하는 데이터를 조회하는데 한계가 있다. 이에 따라 날짜 함수를 활용하여 특정 기간의 데이터를 조회할 수 있도록 학습이 필요하다.
[그림1] 데이터 분석가 채용공고 MySQL 날짜 함수
데이터베이스의 종류에 따라 상이할 수 있으나 대동소이하다. 자주 사용하는 날짜 데이터 중 NOW(), CURDATE(), CURTIME() 함수는 현재 시간을 반환하는 함수이다. 현재 시간을 기준으로 데이터를 조회할 필요가 있는 경우에 참고해서 사용할 수 있다.
날짜 함수 설명 예시 CURDATE() 현재시간의 날짜만을 반환 ex) 2023-06-16 CURTIME() 현재시간의 시간만을 반환 ex) 18:47:20 NOW() 현재시간을 반환 ex) 2023-06-16 18:47:20 또 다른 날짜 함수 중 하나인 DATE(), YEAR(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND()와 같은 함수는 날짜 데이터 중 일부 값을 숫자형 데이터로 반환하는 함수이다.
날짜 함수 설명 예시 DATE() 시간 데이터의 날짜만 반환 2023-06-16 YEAR() 시간 데이터의 연도만 반환 2023 MONTH() 시간 데이터의 월만 반환 6 DAY() 시간 데이터의 일만 반환 16 HOUR() 시간 데이터의 시간만 반환 18 MINUTE() 시간 데이터의 분만 반환 47 SECOND() 시간 데이터의 초만 반환 20 다만, 특정 기간을 조회하기 위해서 DATE_ADD(), DATE_SUB() 함수를 활용하기도 한다. 해당 함수는 날짜 부분에 따라 기준일자와의 간격 만큼을 반환하는 함수이기 때문에 전년, 전월, 전일 등과 같은 특정 구간을 필터해서 데이터를 조회 할 수 있다.
날짜 함수 설명 예시 DATE_ADD() 기준일자 대비 지정된 값 만큼의 간격을 반환 DATE_ADD(NOW(), INTERVAL 1 DAY)=2023-06-17 DATE_SUB() 기준일자 대비 지정된 값 만큼의 간격을 반환 DATE_SUB(NOW(), INTERVAL 1 DAY)=2023-06-15 다만, DATE() 함수에서도 동일한 기능을 구현할 수 있다. DATE(NOW() - INTERVAL 1DAY) = 2023-06-15로 표현된다. 다만, DATE_ADD()와 DATE_SUB함수는 날짜와 시간이 모두 표시되지만, DATE()함수는 연-월-일까지만 표현된다는 차이가 있다.
날짜 함수를 활용한 데이터 조회
오늘과 어제 데이터만 가져오기 위해서 DATE()함수를 활용하여 WHERE절에 넣어주었다.
SELECT TIME , USER_ID , COST , ITEM FROM SALES WHERE TIME BETWEEN DATE(NOW() - INTERVAL 1 DAY) AND DATE(NOW())
Reference
"Date and Time Data Types", MySQL, https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html
"Date and Time Functions", MySQL, https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html
반응형'Data Analysis > SQL' 카테고리의 다른 글
[SQL] 짝수와 홀수인 조건으로 조회하기 (1) 2023.12.16 [SQL] 조건문을 활용한 특정 칼럼 조회하기 (1) 2023.12.15 [SQL] 조건문을 활용한 모든 데이터 조회하기 (1) 2023.12.10 [SQL] Windows에서 MariaDB root 계정 분실 시 (2) 2023.04.05 [SQL] SQL(Structured Query Language)이란? (2) 2023.03.23