mysql 创建日历表
生活随笔
收集整理的這篇文章主要介紹了
mysql 创建日历表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
日歷表包括: 日期,星期,季度,月份,第幾周。
CREATE?TABLE?`dim_day`?(?? ??`ID`?int(11)?NOT?NULL?AUTO_INCREMENT,?? ??`DAY_SHORT_DESC`?datetime?DEFAULT?NULL,?? ??`DAY_LONG_DESC`?varchar(50)?DEFAULT?NULL,?? ??`WEEK_DESC`?varchar(20)?DEFAULT?NULL,?? ??`WEEK_ID`?varchar(20)?DEFAULT?NULL,?? ??`WEEK_LONG_DESC`?varchar(50)?DEFAULT?NULL,?? ??`MONTH_ID`?varchar(20)?DEFAULT?NULL,?? ??`MONTH_LONG_DESC`?varchar(50)?DEFAULT?NULL,?? ??`QUARTER_ID`?varchar(20)?DEFAULT?NULL,?? ??`QUARTER_LONG_DESC`?varchar(20)?DEFAULT?NULL,?? ??`YEAR_ID`?varchar(20)?DEFAULT?NULL,?? ??`YEAR_LONG_DESC`?varchar(50)?DEFAULT?NULL,?? ??PRIMARY?KEY?(`ID`)?? )?ENGINE=InnoDB?AUTO_INCREMENT=731?DEFAULT?CHARSET=utf8;??
存儲過程:DROP?PROCEDURE?f_dim_day;??
[sql]?view plain?copycreate?procedure?f_dim_day(in?start_date?VARCHAR(20),in?date_count?int)?? begin?? declare?i?int;?? ????set?i=0;?? ????DELETE?from?dim_day;?? ????while?i?<?date_count?DO?? ????????INSERT?into?dim_day?(DAY_SHORT_DESC,DAY_LONG_DESC,WEEK_DESC,WEEK_ID,WEEK_LONG_DESC,MONTH_ID,MONTH_LONG_DESC,QUARTER_ID,QUARTER_LONG_DESC,YEAR_ID,YEAR_LONG_DESC)?? ????????????SELECT?? ????????????????DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),'%Y-%m-%d')?DAY_SHORT_DESC,?? ????????????????DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),'%Y年%m月%d日')?DAY_LONG_DESC,?? ????????????????case?DAYOFWEEK(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'))??when?1?then?'星期日'?when?2?then?'星期一'?when?3?then?'星期二'?when?4?then?'星期三'?when?5?then?'星期四'?when?6?then?'星期五'?when?7?then?'星期六'?end?WEEK_DESC,?? ????????????????DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),'%Y%u')?WEEK_ID,?? ????????????????DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),'%Y年第%u周')?WEEK_LONG_DESC,?? ????????????????DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),'%Y%m')?MONTH_ID,?? ????????????????DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),'%Y年第%m月')?MONTH_LONG_DESC,?? ????????????????CONCAT(DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),'%Y'),quarter(STR_TO_DATE(?start_date,'%Y-%m-%d?%H:%i:%s')))?QUARTER_ID,?? ????????????????CONCAT(DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),'%Y'),'年第',quarter(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s')),'季度')?QUARTER_LONG_DESC,?? ????????????????DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),'%Y')?YEAR_ID,?? ????????????????DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),'%Y年')?YEAR_LONG_DESC?? ????????from?dual;?? ????????set?i=i+1;?? ????????set?start_date?=?DATE_FORMAT(date_add(STR_TO_DATE(start_date,'%Y-%m-%d?%H:%i:%s'),interval?1?day),'%Y-%m-%d');?? ????end?while;?? end;??
call?f_dim_day('2015-01-01',365);
表的結構 以及存儲過程如下;
[sql]?view plain?copy存儲過程:
?刪除 f_dim_day這個存儲過程
[sql]?view plain?copy執行該存儲過程:
[sql]?view plain?copy總結
以上是生活随笔為你收集整理的mysql 创建日历表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机应用研究、计算机工程与应用、计算机
- 下一篇: linux cmake编译源码,linu