반응형
- WITH RECURSIVE 구문을 사용하여 모든 날짜 데이터를 생성하는 방법 -
MariaDB에서 더미용 모든 날짜를 생성하는 방법에 대해서 포스팅한다.
WITH RECURSIVE 구문을 사용하여 데이터를 생성하는 건데 MariaDB 10.2.1 부터 WITH RECURSIVE 구문을 사용 할 수 있다
더미 데이터를 생성하는 SQL은 아래와 같은 형태이다.
WITH RECURSIVE DT_TABLE AS (
SELECT ${시작일} dt, 1 lv FROM dual
UNION all
SELECT DATE_ADD('2020-09-12 00:00:00', INTERVAL DT_TABLE.lv ${시간/일 단위}) dt, DT_TABLE.lv+1 AS lv FROM DT_TABLE WHERE DT_TABLE.lv < ${총 몇개나 생성하는지에 대한 카운트}
)
SELECT
dt
FROM DT_TABLE;
EX) 2020-09-12 00:00:00 부터 1시간 단위로 99개의 데이터를 생성하는 쿼리
WITH RECURSIVE DT_TABLE AS (
SELECT '2020-09-12 00:00:00' dt, 1 lv FROM dual
UNION all
SELECT DATE_ADD('2020-09-12 00:00:00', INTERVAL DT_TABLE.lv HOUR) dt, DT_TABLE.lv+1 AS lv FROM DT_TABLE WHERE DT_TABLE.lv < 99
)
SELECT
dt
FROM DT_TABLE;
EX) 2020-09-12 00:00:00 부터 하루 단위로 99개의 데이터를 생성하는 쿼리
WITH RECURSIVE DT_TABLE AS (
SELECT '2020-09-12 00:00:00' dt, 1 lv FROM dual
UNION all
SELECT DATE_ADD('2020-09-12 00:00:00', INTERVAL DT_TABLE.lv DAY) dt, DT_TABLE.lv+1 AS lv FROM DT_TABLE WHERE DT_TABLE.lv < 99
)
SELECT
dt
FROM DT_TABLE;
반응형
'DB > MySql (MariaDB)' 카테고리의 다른 글
MySQL (MariaDB) 두 날짜 사이 일수, 주말(평일) 일수 구하기 - 삽질중인 개발자 (2) | 2020.04.12 |
---|