back to top
-1.6 C
New York
토요일, 12월 21, 2024

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 튜닝 방법

spot_img

Latest articles

Related articles

spot_img