[테이블 생성]
table name : calendar
calendar_seq(int)
date(varchar)
day(varchar)
[yyyymmdd, 요일의 데이터 삽입]
(날짜에 대한 데이터 삽입 공간을 위해서 의미없는 조인과 함께 공간은 만든 후, between 을 통한 날짜를 넣는다.)
INSERT INTO calendar
(calendar_seq, date, day)
select rnum as calendar_seq,
date_format((date_add('20050101', interval rnum - 1 day)),'%Y%m%d') as date,
dayname(date_format((date_add('20050101', interval rnum - 1 day)),'%Y%m%d')) as day
from (
select @rnum := @rnum + 1 as rnum
from (
select @rnum := 0
) a, 아무개 table , 아무개 table, 아무개 table
) c
where date_format((date_add('20050101', interval rnum - 1 day)),'%Y%m%d') between '20100101' and '20151231';
[select 달력 뷰]
select max(if(a.day = 'sunday', date_format(a.date, '%d'), '')) as 일,
max(if(a.day = 'monday', date_format(a.date, '%d'), '')) as 월,
max(if(a.day = 'tuesday', date_format(a.date, '%d'), '')) as 화,
max(if(a.day = 'wednesday', date_format(a.date, '%d'), '')) as 수,
max(if(a.day = 'thursday', date_format(a.date, '%d'), '')) as 목,
max(if(a.day = 'friday', date_format(a.date, '%d'), '')) as 금,
max(if(a.day = 'saturday', date_format(a.date, '%d'), '')) as 토
from calendar a
where a.date like '201103%'
group by WEEK(a.date,0)
# 실무에 적용 해본바는 없고 -효용성에 대해서도 잘 모르지만-
회사에서 내준 숙제(?)이기에 만들어진 SQL 야매 달력뷰
'DataBase > MariaDB' 카테고리의 다른 글
Oracle에서 MariaDB로 마이그레이션하기 (0) | 2020.10.06 |
---|---|
[Mysql] mysql 반복문, for문, loop 사용법 (0) | 2020.09.23 |
[mysql/mariadb] DB 스케쥴러 (0) | 2020.09.18 |
mysql Primary Key 기본키 삭제, 기본키 변경, 여러 컬럼을 기본키로 (0) | 2020.08.31 |
maria db column 추가 (0) | 2020.08.26 |