일간

(특정기간의 데이터를 들고오고 싶다면 LIMIT이 아니라 where절에서 기간을 조절해야한다)

SELECT 

DATE_FORMAT(your_date, '%Y%m%d') AS '날짜', 

 

FROM `YOURTABLE

WHERE `your_date` >= '일주일전날짜(20220503)' and `your_date` <= '오늘 날짜(20220510)'

GROUP BY DATE_FORMAT(your_date, '%Y%m%d') ORDER BY `날짜` DESC

 

 

주간

(내가 인식하는 1주일은 월요일에서 시작해서 일요일에 끝이난다고 생각해서 이렇게 만들었다)

SELECT 

DATE_FORMAT(DATE_SUB(your_date, INTERVAL (DAYOFWEEK(your_date)-2) DAY), '%Y%m%d') AS '시작날짜', 

DATE_FORMAT(DATE_SUB(your_date, INTERVAL (DAYOFWEEK(your_date)-8) DAY), '%Y%m%d') AS '끝날짜', 

 

FROM `YOURTABLE` 

GROUP BY `시작날짜`, `끝날짜` 

ORDER BY `시작날짜` DESC LIMIT 4

 

 

월간

(월간데이터는 where 절로 처리하지 않은 이유는 일간데이터처럼 데이터가 비어있는 경우가 없다 시피해서 select에서 처리했다 월간데이터도 비어있는 경우가 있다면 WHERE 절에서 처리하는것이 맞다)

SELECT 

DATE_FORMAT(your_date, '%Y%m') AS `날짜`, 

 

FROM `YOURTABLE`

GROUP BY DATE_FORMAT(your_date, '%Y%m')

ORDER BY `날짜` DESC LIMIT 12

 

 

+ Recent posts