DB/MySql (MariaDB)
MariaDB 모든 날짜 생성하기 - 삽질중인 개발자
개발 N년차
2022. 7. 20. 08:43
반응형
- 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;
반응형