日历表包括: 日期,星期,季度,月份,第几周。

表的结构 以及存储过程如下;

[sql] view plain copy
  1. CREATE TABLE `dim_day` (
  2. `ID` int(11) NOT NULL AUTO_INCREMENT,
  3. `DAY_SHORT_DESC` datetime DEFAULT NULL,
  4. `DAY_LONG_DESC` varchar(50) DEFAULT NULL,
  5. `WEEK_DESC` varchar(20) DEFAULT NULL,
  6. `WEEK_ID` varchar(20) DEFAULT NULL,
  7. `WEEK_LONG_DESC` varchar(50) DEFAULT NULL,
  8. `MONTH_ID` varchar(20) DEFAULT NULL,
  9. `MONTH_LONG_DESC` varchar(50) DEFAULT NULL,
  10. `QUARTER_ID` varchar(20) DEFAULT NULL,
  11. `QUARTER_LONG_DESC` varchar(20) DEFAULT NULL,
  12. `YEAR_ID` varchar(20) DEFAULT NULL,
  13. `YEAR_LONG_DESC` varchar(50) DEFAULT NULL,
  14. PRIMARY KEY (`ID`)
  15. ) ENGINE=InnoDB AUTO_INCREMENT=731 DEFAULT CHARSET=utf8;

存储过程:

删除 f_dim_day这个存储过程

[sql] view plain copy
  1. DROP PROCEDURE f_dim_day;
[sql] view plain copy
  1. create procedure f_dim_day(in start_date VARCHAR(20),in date_count int)
  2. begin
  3. declare i int;
  4. set i=0;
  5. DELETE from dim_day;
  6. while i < date_count DO
  7. 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)
  8. SELECT
  9. DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y-%m-%d') DAY_SHORT_DESC,
  10. DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y年%m月%d日') DAY_LONG_DESC,
  11. 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,
  12. DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y%u') WEEK_ID,
  13. DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y年第%u周') WEEK_LONG_DESC,
  14. DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y%m') MONTH_ID,
  15. DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y年第%m月') MONTH_LONG_DESC,
  16. 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,
  17. 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,
  18. DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y') YEAR_ID,
  19. DATE_FORMAT(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),'%Y年') YEAR_LONG_DESC
  20. from dual;
  21. set i=i+1;
  22. set start_date = DATE_FORMAT(date_add(STR_TO_DATE(start_date,'%Y-%m-%d %H:%i:%s'),interval 1 day),'%Y-%m-%d');
  23. end while;
  24. end;

执行该存储过程:

[sql] view plain copy
  1. call f_dim_day('2015-01-01',365);

mysql 创建日历表相关推荐

  1. mysql创建日历表,可以按日或按月增加数据

    统计一段时间内每天的各种数据,发现某天没有的数据没法显示出来,所以这时候用一张日历表去联合查询即能获得每天的数据 创建日历表用到ADDDATE这个系统函数,这个函数会自动为给定的日期添加指定的时间间隔 ...

  2. 更新MYSQL生成日历表,支持跨年份 存储过程

    更新MYSQL生成日历表,支持跨年 代码 CREATE DEFINER = 'root'@'localhost' PROCEDURE `proc_ym`(IN sdate DATE, IN edate ...

  3. MySql生成日历表

    mysql使用存储过程,创建日历表: 准备日历表: CREATE TABLE `m_dim_day` ( `ID` int(11) NOT NULL AUTO_INCREMENT,`DAY_ID` v ...

  4. oracle与mysql创建表时的区别

    oracle创建表时,不支持在建表时同时增加字段注释.故采用以下方式: #创建表 CREATE TABLE predict_data as (id integer NOT NULL, uid varc ...

  5. MySQL留言板怎么创建_如何使用JSP+MySQL创建留言本(三)

    如何使用JSP+MySQL创建留言本(三)推荐查看本文HTML版本 下面我们开始建立留言的页面! import ="java.util.*" import ="jav ...

  6. mysql创建库几种方法_MySQL创建数据库的两种方法

    本文为大家分享了两种mysql创建数据库的方法,供大家参考,具体内容如下 第一种方法:使用 mysqladmin 创建数据库使用普通用户,你可能需要特定的权限来创建或者删除 mysql 数据库. 所以 ...

  7. centos 7 mysql 创建用户_【CentOS 7MySQL常用操作4】,MySQL创建用户以及授权#180116

    hellopasswd MySQL创建用户以及授权 grant all on . to 'user1' identified by 'passwd'; grant SELECT,UPDATE,INSE ...

  8. MySQL 创建数据表

    MySQL 创建数据表 创建MySQL数据表的SQL语法: CREATE TABLE table_name (column_name column_type); 例如,我们在 PENGKE 数据库中创 ...

  9. mysql新建备份在哪里_navicat for MySQL创建备份计划的详细流程

    刚入手navicat for MySQL的用户,不清楚怎么创建备份计划?现在就跟着小编一起来看一下navicat for MySQL创建备份计划的详细流程吧. navicat for MySQL创建备 ...

最新文章

  1. Linux系统配置VI或VIM的技巧
  2. 离线轻量级大数据平台Spark之MLib机器学习库SVM实例
  3. 关于IOS开发知识的总结
  4. 洛谷 - P2944 [USACO09MAR]Earthquake Damage 2 G(最小割)
  5. 《Python Cookbook 3rd》笔记(2.5): 字符串搜索和替换
  6. 004python与mongoDB交互
  7. 对于防止按钮重复点击的尝试
  8. 基于springboot的考研学习平台
  9. 【mysql】扩展-常用函数
  10. 第5课:Scratchjr说话指令
  11. 党建管理系统开发,组织部干部人事任免平台建设方案
  12. 定量/高光谱遥感之——光谱分析技术
  13. c语言大小写字母变换,C语言学习:任意大小写字母转换
  14. 身份证上传尺寸太大如何缩小?改照片尺寸的简单方法
  15. python字典键盘添加元素_对python字典元素的添加与修改方法详解
  16. stm32F103上基于FreeRTOS系统的亮度可调小台灯
  17. java-net-php-python-springboot健身房管理系统计算机毕业设计程序
  18. Vimeo高级API:使用SCRIBE在JAVA中搜索公共视频
  19. 上海东原从“野心家”到“大玩家” 连接江湖“人情味”
  20. 中小网站遭遇成长烦恼:备案花费远超经营成本

热门文章

  1. 使用电阻应变片实现对弹丸击打的检测
  2. amoled下载_AMOLED的完整形式是什么?
  3. 盘点2009年商场百货创意促销手段 秒杀当道
  4. hadoop101: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
  5. unity中Standard Assets导入错误的解决方法
  6. MySQL事务——万字详解
  7. linux系统日志怎么退出,linux系统日志的清除
  8. jvm性能分析工具之-- Eclipse Memory Analyzer tool(MAT)(二)
  9. C语言数组知识点总结
  10. 什么是语义网络知识表示?给出这种表示方法的优缺点?