Database/MySQL

[MariaDB] 달력 날짜 데이터 insert 하기

idealist 2022. 12. 12. 16:40
먼저 임의의 테이블을 생성합니다 (몇 년치의 날짜 데이터를 넣기 위한 테이블) 
create table  temp (n int); // 컬럼 하나의 테이블 생성
insert into temp values (1); // 숫자 1 insert
insert into temp  select * from temp;
// 테이블의 데이터를 반복 insert 하여 13번 정도 반복하면 약 3650의 행이 생김 (10년치)
날짜 데이터를 넣을 테이블을 생성하고 insert
insert into calendar
select date_format(date, '%Y%m%d'), date_format(d, '%Y-%m-%d'),
date_format(d, '%a')
// date 데이터의 포맷 형식을 지정해줍니다
// %a는 요일을 나타냅니다
from (
select @rnum:=@rnum+1 as rownum, date(adddate('2024-01-01', interval @rnum day))
AS date
// 3650의 행이 있는 temp 테이블로부터 2024-01-01을 시작으로
// 최대 테이블의 행의 수 만큼 1일씩 추가하여 insert 합니다
from (
select @rnum:=-1) r, temp
) temp where year(date) < 2025;//2025년까지 지정해줍니다.
// 3650의 행이 있으므로 2034년까지 가능

date_format을 이용하여 각각 필요한 포맷으로 데이터를 insert 하였습니다.

이상입니다! 궁금한 점 있으시면 댓글 달아주세요!

참고

날짜 데이터 생성