Dev/DataBase
[MariaDB] 더미데이터 - 날짜 만들기
nakanara
2021. 5. 6. 09:50
반응형
목표일까지의 날짜 데이터가 필요하여, 반복문으로 더미 데이터 생성
WITH RECURSIVE DT_CNT AS (
-- 목표일
SELECT DATEDIFF(STR_TO_DATE('21001231', '%Y%m%d'), NOW()) cnt
), DT_TABLE AS (
SELECT NOW() dt, 1 lv FROM dual
UNION all
SELECT DATE_ADD(NOW(), INTERVAL DT_TABLE.lv DAY) dt, DT_TABLE.lv+1 AS lv FROM DT_CNT, DT_TABLE WHERE DT_TABLE.lv <= dt_cnt.cnt
)
SELECT
dt,
lv,
DATE_FORMAT(dt, '%w') dd -- 0 - 일요일, 1 - 월, ~ 6 - 토
FROM DT_TABLE
사용 함수
- DATEDIFF : 두 날짜 간의 요일 차 계산
SELECT DATEDIFF('날짜1', '날짜2'); -- 날짜1 - 날짜2 차이
- TIMESTAMPDIFF: 두 날짜 간의 차이 계산
SELECT TIMESTAMPDIFF('단위', '날짜1', '날짜2'); -- 날짜1 - 날짜2 차이 계산
-- 단위
-- SECOND: 초
-- MINUTE: 분
-- HOUR: 시
-- DAY: 일
-- MONTH: 달
-- YEAR: 년
- DATE_ADD : DATE 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND) -- 현재 시간에 1초 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE) -- 현재 시간에 1분 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR) -- 현재 시간에 1시간 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY) -- 현재 시간에 1일 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH) -- 현재 시간에 1달 더하기
SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR) -- 현재 시간에 1년 더하기
- DATE_SUB : DATE 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 SECOND) -- 현재 시간에 1초 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 MINUTE) -- 현재 시간에 1분 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR) -- 현재 시간에 1시간 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 DAY) -- 현재 시간에 1일 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH) -- 현재 시간에 1달 빼기
SELECT DATE_SUB(NOW(), INTERVAL 1 YEAR) -- 현재 시간에 1년 빼기
#mariadb #mysql #dummy #날짜데이터
반응형