-4.9 C
New York
금요일, 12월 5, 2025

Buy now

MySQL 사용법, 데이터 추출 기간 설정하기, 날짜 범위 데이터 추출 방법

-

여기에서는 MySQL 사용법으로 일정 기간 정해진 기간동안 데이타를 뽑아 오는 MySQL 쿼리를 작성 방법, 즉 데이터 추출 기간 설정 방법에 대해서 알아보도록 하겠습니다.

이전에는 가장 최근 일정 기간 데이터를 뽑아 오도록 최근 기간 데이터 추출 방법을 배워 유용하게 사용하고 있습니다. 이 방법은 유연성이 좋기는 한데요. 글을 쓰다보면 특정 기간 데이타를 보여주시간이 흘러도 그 데이타 및 그래프가 보여줘야 제대로 이해할 수 있는 경우가 있습니다.

예를 들어 미국 경제 분석을 하는데 21년 1분기에서 22년 4분기까지 경제 성장률 예측치를 보여주고 이를 기반해 미국 경제 전망을 이야기한다면 그 페이지에서 보여주는 데이터 및 그래프는 21년 1분기에서 22년 4분기까지 데이터만 보여주는 것이 맞습니다.

이렇세 하기 위해서는 MySQL 쿼리 사용 시 날짜 범위를 정하고 그 범위내에서 데이터를 뽑아오도록 MySQL퀄리를 사용하면 됩니다. 아래에서는 이를 가능케하는 MySQL쿼리 작성 방법을 살펴보도록 하겠습니다.

DATA_SUB와 INTERVAL을 사용

먼저 생각할 수 있는 것은 DATA_SUB와 INTERVAL을 사용하는 방법입니다.

  • date : 날짜 형식(DATE)으로 추가한 컬럼 이름
  • 2021년 1월 1일에서 2022년 12월 31일 사이의 데이터를 뽑음
WHERE date BETWEEN DATE_SUB('2021-01-01', INTERVAL 1 DAY)              
                                     AND '2022-12-31'Code language: PHP (php)

아래는 이 방법을 실제로 적용한 코드인데요.

SELECT economy_q.`quarter_cy`,
            economy_q.`gdp`,
            economy_q.`gdp_yoy`,
            economy_q.`gdp_qoq`,
            economy_q.`gdp_us_yoy`
FROM  economy_q
WHERE 
            economy_q.`country` = 'us' 
   AND date BETWEEN DATE_SUB('2021-01-01', INTERVAL 1 DAY)              
                                    AND '2022-12-31';Code language: PHP (php)

이러한 코드는 먹히긴 하지만, 이를실행시키면 이상하게 20년 4분기부터 22년 4분기까지 데이터를 보여주더군요. 뭐 유사한 범위내 데이타를 뽑아 주기 때문에 아주 쓸모없지는 않지만 정확한 데이터가 필요한 경우는 사용하기 어려울듯 합니다.

DATE_FORMAT 사용

다음에 사용해 본 방법은 DATE_FORMAT을 사용하는 방법인데요. 기본 공식은 아래와 같습니다.

  • date : 날짜 형식(DATE)으로 추가한 컬럼 이름
  • 2021년 1월 1일에서 2022년 12월 31일 사이의 데이터를 뽑음
  • ORDER BY date desc : 데이터 추출 후 내림차순으로 정렬
WHERE DATE_FORMAT(date,'%Y-%m-%d') between '2021-01-01' and '2022-12-31'
             ORDER BY date desc;Code language: PHP (php)

아래는 이 방법을 실제로 적용한 코드인데요.

SELECT economy_q.`quarter_cy`,
            economy_q.`gdp`,
            economy_q.`gdp_yoy`,
            economy_q.`gdp_qoq`,
            economy_q.`gdp_us_yoy`
FROM  economy_q
WHERE 
            economy_q.`country` = 'us' 
   AND DATE_FORMAT(date,'%Y-%m-%d') between '2021-01-01' and '2022-12-31'
           ORDER BY date desc;Code language: PHP (php)

위 코드는 원하는대로 제대로 먹힙니다.

지시한대로 21년 1분기부터 22년 4분기까지 데이터를 뽑아줍니다.

따라서 일정 기간을 정해놓고 데이터 추출이 필요하다면 이 코드를 사용하면 좋을 것 같습니다.

참고

MySQL 사용법, 데이타베이스 & 테이블 & 컬럼 생성하기

MySQL 사용법, 최근 데이터 조회 방법, 최근 3개월 데이터 등등

MySQL 사용법, 데이터 추출 기간 설정하기, 날짜 범위 데이터 추출 방법

MySql 최적화로 빨라질 사이트 DB 튜닝 방법

guest
0 Comments
Oldest
Newest
Inline Feedbacks
View all comments