일간
(특정기간의 데이터를 들고오고 싶다면 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
'코딩 공부 > SQL' 카테고리의 다른 글
mysql 하루 전, 하루 뒤 날짜 구하기 (0) | 2022.01.06 |
---|---|
MYSQL - MySQL에서 ONLY_FULL_GROUP_BY를 활성화하는 방법 (0) | 2021.12.02 |
SQL int 범위 (0) | 2021.12.01 |
MYSQL Expression #23 of SELECT list is not in GROUP BY clause and contains nonaggregated column (0) | 2021.11.25 |
SQL MYSQL-특정 데이터를 일부 또는 전체를 수정해야 할 때 REPLACE (0) | 2021.11.19 |