`
java-mans
  • 浏览: 11415869 次
文章分类
社区版块
存档分类
最新评论

MySQL 生成 时间轴

 
阅读更多
DROP PROCEDURE IF EXISTS pro_dim_date;
tudou@Gyyx
CREATE PROCEDURE pro_dim_date(IN bdate DATE,IN edate DATE)
BEGIN
DECLARE var DATE DEFAULT bdate;
DECLARE evar DATE DEFAULT DATE_ADD(edate,INTERVAL 1 DAY);
DECLARE bweek DATE;
DECLARE eweek DATE;
WHILE var<evar DO
SET bweek = DATE_ADD(DATE_SUB(var,INTERVAL 1 WEEK),INTERVAL 1 DAY);
SET eweek = DATE_SUB(DATE_ADD(var,INTERVAL 1 WEEK),INTERVAL 1 DAY);
INSERT INTO gyyx_report.dim_date 
(
`date_id`,
`date_name`,
`date_of_month`,
`year_id`,
`year_name`,
`quarter_id`,
`quarter_name`,
`month_id`,
`month_name`,
`month_of_year_name`,
`month_of_year_id`,
`week_id`,
`week_name`,
`week_of_year_id`,
`week_of_year_name`,
`is_weekend`
)
VALUES
(
DATE_FORMAT(var,'%Y%m%d'),
DATE_FORMAT(var,'%Y-%m-%d'),
DAYOFMONTH(var),
YEAR(var),
CONCAT(YEAR(var),'年'),
QUARTER(var),
CONCAT(QUARTER(var),'季度'),
DATE_FORMAT(var,'%Y%m'),
CONCAT(YEAR(var),'年',MONTH(var),'月'),
CONCAT(MONTH(var),'月'),
MONTH(var),
WEEKDAY(var),
CASE WEEKDAY(var) WHEN 0 THEN '星期一' WHEN 1 THEN '星期二' WHEN 2 THEN '星期三' WHEN 3 THEN '星期四' WHEN 4 THEN '星期五' WHEN 5 THEN '星期六' WHEN 6 THEN '星期日' END,
WEEKOFYEAR(var),
CONCAT('第',WEEKOFYEAR(var),'周(',MONTH(bweek),'月',DAY(bweek),'日~',MONTH(eweek),'月',DAY(eweek),'日'),
CASE WHEN WEEKDAY(var)>4 THEN '是' ELSE '否' END 
);
SET var=DATE_ADD(var,INTERVAL 1 DAY);
END WHILE;
END

调用:

CALL pro_dim_date('2005-01-01','2013-12-31')

结果

20131217	2013-12-17	17	2013	2013年	4	4季度	201312	2013年12月	12月	12	1	星期二	51	第51周(12月11日~12月23日	否
20131218	2013-12-18	18	2013	2013年	4	4季度	201312	2013年12月	12月	12	2	星期三	51	第51周(12月12日~12月24日	否
20131219	2013-12-19	19	2013	2013年	4	4季度	201312	2013年12月	12月	12	3	星期四	51	第51周(12月13日~12月25日	否
20131220	2013-12-20	20	2013	2013年	4	4季度	201312	2013年12月	12月	12	4	星期五	51	第51周(12月14日~12月26日	否
20131221	2013-12-21	21	2013	2013年	4	4季度	201312	2013年12月	12月	12	5	星期六	51	第51周(12月15日~12月27日	是
20131222	2013-12-22	22	2013	2013年	4	4季度	201312	2013年12月	12月	12	6	星期日	51	第51周(12月16日~12月28日	是
20131223	2013-12-23	23	2013	2013年	4	4季度	201312	2013年12月	12月	12	0	星期一	52	第52周(12月17日~12月29日	否
20131224	2013-12-24	24	2013	2013年	4	4季度	201312	2013年12月	12月	12	1	星期二	52	第52周(12月18日~12月30日	否
20131225	2013-12-25	25	2013	2013年	4	4季度	201312	2013年12月	12月	12	2	星期三	52	第52周(12月19日~12月31日	否
20131226	2013-12-26	26	2013	2013年	4	4季度	201312	2013年12月	12月	12	3	星期四	52	第52周(12月20日~1月1日	否
20131227	2013-12-27	27	2013	2013年	4	4季度	201312	2013年12月	12月	12	4	星期五	52	第52周(12月21日~1月2日	否
20131228	2013-12-28	28	2013	2013年	4	4季度	201312	2013年12月	12月	12	5	星期六	52	第52周(12月22日~1月3日	是
20131229	2013-12-29	29	2013	2013年	4	4季度	201312	2013年12月	12月	12	6	星期日	52	第52周(12月23日~1月4日	是

表结构:

CREATE TABLE `dim_date` (
 `date_id` int(11) NOT NULL COMMENT '20110512',
 `date_name` varchar(16) DEFAULT NULL COMMENT '2011-05-12',
 `date_of_month` int(11) DEFAULT NULL COMMENT '12',
 `year_id` int(11) DEFAULT NULL COMMENT '2011',
 `year_name` varchar(16) DEFAULT NULL COMMENT '2011年',
 `quarter_id` int(11) DEFAULT NULL COMMENT '2',
 `quarter_name` varchar(16) DEFAULT NULL COMMENT '2季度',
 `month_id` int(11) DEFAULT NULL COMMENT '5',
 `month_name` varchar(16) DEFAULT NULL COMMENT '5月',
 `month_of_year_name` varchar(16) DEFAULT NULL COMMENT '2011年5月',
 `month_of_year_id` int(11) DEFAULT NULL COMMENT '201105',
 `week_id` int(11) DEFAULT NULL,
 `week_name` varchar(16) DEFAULT NULL,
 `week_of_year_id` int(11) DEFAULT NULL,
 `week_of_year_name` varchar(32) DEFAULT NULL,
 `is_weekend` enum('否','是') DEFAULT NULL COMMENT '是否周末',
 PRIMARY KEY (`date_id`),
 KEY `ix_dim_date_date_name` (`date_name`),
 KEY `ix_dim_date_month_id` (`month_id`),
 KEY `ix_dim_date_year_id` (`year_id`),
 KEY `ix_dim_date_quanter_id` (`quarter_id`),
 KEY `ix_dim_date_week_of_year_id` (`week_of_year_id`,`week_of_year_name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1


分享到:
评论

相关推荐

    PHP+MYSQL生成HTML静态网站导航商业版

    · 可设置每个网址的过期时间,到期自动屏蔽,方便管理收费链接 · 用户注册及自定义网址收藏夹功能,留住用户 · 点入来路自动统计排行功能,流量返还,方便推广 · 全站生成HTML · 自定义生成HTML的目录和文件名...

    PHP+MYSQL生成HTML静态页面带后台管理网站导航程序

    · 可设置每个网址的过期时间,到期自动屏蔽,方便管理收费链接 · 用户注册及自定义网址收藏夹功能,留住用户 · 点入来路自动统计排行功能,流量返还,方便推广 · 全站生成HTML · 自定义生成HTML的目录和文件名...

    mysql 按不同时间维度查询价格平均值

    包含查询近7天价格平均值(当天没数据时显示为0)、近一个月 每隔5天 价格平均值、近6个月 每月价格平均值;...结果集对应生成折线图所需的数据集,每个维度的x轴都会有数据(真实值或0),y轴为价格平均值;

    dbWebGen:数据库Web表单生成器

    当前,该引擎提供各种可视化功能,例如表格,条形图,传单地图,sankey,时间线,图形/网络,社交网络分析,地理地图等 开发人员可以通过插件中的挂钩函数向引擎添加自定义功能和扩展,并且管理员可以利用控制引擎...

    DivCssData v1.5.00

    DivCssData(关联网页自动切片生成Div+Css软件数据库版)是一款只需要导入效果图,拉框线就可以生成标准的兼容性的DIV+CSS,同时集成图片切换、图片滚动、滑动门TAB效果、视频代码、表单、网页控件、JAVASCRIPT验证、...

    微交易/微盘/决胜60秒源码/二元期权交易系统下载

    1、安装部署环境,PHP 5.5 + mysql 5.6 + IIS 或者 Linux服务器配置为 PHP 5.5 + mysql 5.6 + Apache 2、将data.sql导入到数据库中,在Application/Common/Conf/Config.php中修改数据库连接等相关配置 3、将代码中的...

    Provider-DB-Creator

    它获取数据库连接参数,唯一用户数量,时间线的创建,开始和结束(带有时间的日期),以通过该时间线在每分钟的时间点上生成随机流量负载(以字节为单位)。 SQL模式由2个表组成:USERS和TRAFFIC。 第一个存储所有...

    521360仿360安全网址导航 v1.0.rar

     网站采用114啦内核,99%仿360安全网址,版面清晰简洁,首页代码精简,生成首页HTML为44KB。  天气、手机充值、点卡均调用360官方,邮箱可以正常登录(个别有... ★★★★版本不断创新,本群第一时间首发★★★★

    linux操作系统安装后完成的安全加固的配置

    2. IP地址与MAC绑定并且DHCP分配的地址与静态设置一致,安装完成自动生成静态IP配置文件 3. 初始安装是安全的不必担心来自网络的入侵。 4. 所有服务只监听内网地址的端口,禁止监听0.0.0.0,仅有对外提供的服务可以...

    基于SSM的在线考试系统,基础信息维护、在线考试、在线组卷、成绩查询以及题库维护.zip

    灵活性和便利性:学生和考生可以通过互联网随时随地参加考试,不再受限于特定的地点和时间。 自动化管理:系统能够自动管理考试安排、考生信息、考试成绩等数据。 安全性:在线考试系统通常具有严格的身份验证和防...

    Messaging-App:简单的 Ruby on Rails 应用程序,用于在站点时间进行消息传递

    一个简单的 Ruby on Rails 应用程序,用于在中央时间线进行消息传递 DBCONSOLE 您可以通过rails dbconsole直接进入数据库的命令行。 您将使用 database.yml 中定义的凭据连接到数据库。 启动不带参数的脚本会将您...

    R语言经典实例(中+英)

     4.13 读取MySQL数据库中的数据 100  4.14 保存和传送目标 102  第5章 数据结构 104  5.1 对向量添加数据 111  5.2 在向量中插入数据 112  5.3 理解循环规则 113  5.4 构建因子(即分类变量) 115  5.5 将多...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    DjangoORM基本创建基本类型以及生成数据库结构 DjangoORM使用mysql注意 DjangoORM基本增删查该 基于ORM实现用户登录 基于ORM实现用户增加删除修改以及查看详细 Django字段类型介绍 DjangoORM字段参数介绍 DjangoORM...

Global site tag (gtag.js) - Google Analytics