워드프레스에서 정기적으로 데이터 업데이트 방법을 고민하면서 SQL 사용법을 공부하고 있습니다. 기초부터 차근차근 공부하기보다는 작업에 필요한 내용을 검색해 이해하는 방식으로 공부해보고 있는데요.
여기 사이트에서는 분기별 실적 분석하는 경우가 많기 때문에 분기별 실적 데이타를 쉽게 업데이트하고, 이렇게 업데이트된 실적 데이터를 최근 실적 중심으로 보여주는 방법을 고민했습니다. 이를 위해서 SQL 데이타에서 최근 3개년 데이터와 같은 최근 데이터 추출 방법을 살펴 보았습니다.
DATE_ADD
Code language: PHP (php)
DATE_ADD(과거 DATAADD) 함수 사용
최근 데이터를 추출 조건 설정에 DATAADD 함수를 사용할 수 있다는 글이 있습니다. 하지만 최근 릴리즈된 MySQL에서는 DATAADD 함수는 작동하지 않고 대신 DATE_ADD 함수를 사용합니다.
DATE_ADD 함수식은 아래와 같습니다.
DATE_ADD(date,INTERVAL expr type)
Code language: PHP (php)
현재 시점에서 5년치 데이터를 추출한다면 아래와 같은 명령을 사용할 수 있습니다.
DATE_ADD(NOW(), INTERVAL -1800 DAY)
DATE_ADD(NOW(), INTERVAL -60 MONTH)
DATE_ADD(NOW(), INTERVAL -5 YEAR)
Code language: PHP (php)
INTERVAL 함수 사용
일부 DATAADD 함수가 먹히지 않는 프로그램이 있었습니다. 제가 사용해본 wpDataTables 플러그인은 DATAADD 함수가 잘 먹히지 않더군요. 위에서 설명한대로 DATAADD는 더이상 MySQL에서 사용하지 않기 때문이죠.
대신 방법을 찾은 INTERVAL 함수는 제대로 작동했습니다.
아래 명령은 now와 INTERVAL을 사용했네요. 아래 명령은 wpDataTables 플러그인에서 제대로 작동했습니다.
WHERE `DATA` > now() - INTERVAL 60 MONTH;
Code language: PHP (php)
아래는 20년간 데이타를 추출하라는 명령입니다. 아래에서 year는 YEAR 속성을 갖는 컬럼명입니다.
WHERE ``year` < now() - INTERVAL 20 YEAR;
Code language: PHP (php)
DATAIFF 함수 사용
종종 DATAIFF 함수를 사용하자는 제안이 있습니다. 제가 wpDataTables 플러그인에서 테스트 했을 시 작동하지는 않았습니다. 다른 프로그램에서는 테스트해볼 수 있을 것 같습니다.
아래는 3개월 치 데이타를 추출하라는 명령입니다.
WHERE DATEDIFF(MONTH, date, GETDATE()) <= 3
Code language: PHP (php)
참고
MySQL 사용법, 데이타베이스 & 테이블 & 컬럼 생성하기
MySQL 사용법, 최근 데이터 조회 방법, 최근 3개월 데이터 등등