Mysql时间维度表

1、建一张表test_date用来日期的自增长,里面只放一列  ID,写一个存储,插入顺序数字

BEGIN
#Routine body goes here...

declare id int;
set id=1;
while id<=6000 do
insert into test_date
values(id);
set id=id+1;
end while;
END

2. 建立时间维度表,插入记录

SET @d0 = "2000-01-01";
SET @d1 = "2020-12-31"; 
SET @str = "Q"; 
SET @date = date_sub(@d0, interval 1 day);

INSERT INTO dim_time
SELECT @date := date_add(@date, interval 1 day),    
  year(@date),
  month(@date),
  DAYOFYEAR(@date),
  day(@date) as d,
  weekday(@date)+1 as wd,
  week(@date, 3) as w,
  dayname(@date) as wd_name,
  monthname(@date) as m_name, 
  quarter(@date) as q,
  CONCAT(@str,quarter(@date)) as qq,
  DAYOFMONTH(last_day(@date)),
  date_format(@date, "%Y%m%d"),    
  date_format(@date, ‘%d-%m-%Y‘)as yw
FROM test_date
WHERE date_add(@date, interval 1 day) <= @d1
ORDER BY id;
时间: 2024-10-05 07:34:06

Mysql时间维度表的相关文章

mysql中生成时间维度表

利用mysql常用日期函数生成时间维度表,效率最高,最简单,无需其他的一些工具支持.生成结果示例如下图: # time span SET @d0 = "2012-01-01"; SET @d1 = "2012-12-31"; SET @date = date_sub(@d0, interval 1 day); # set up the time dimension table DROP TABLE IF EXISTS time_dimension; CREATE T

ssas 时间维度表 sql 代码

该代码转自 天善智能社区 文章 文章地址:https://ask.hellobi.com/blog/biwork/572 ----------------------------------------------------------------------- BIWORK DimDate and vDimDate Demo----------------------------------------------------------------------USE BIWORK_SSIS

【转载】维度表和事实表的区别

免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:知识点滴      原文地址: 维度表, 事实表, 数据仓库, BI...   以前一直对维度表, 事实表, 数据分析, BI等概念等有一些模糊. 这几天的学习终于让这些有了一些眉目了: 维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度.前面的示例就可以有两个维度:类型和区域.

事实表和维度表(转载)

维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度.前面的示例就可以有两个维度:类型和区域.另外每个维度还可以有子维度(称为属性),例如类别可以有子类型,产品名等属性. 下面是两个常见的维度表结构: 产品维度表:Prod_id, Product_Name, Category, Color, Size, Price时间维度表:TimeKey, Season, Year, Month, Date 而事实

维度表, 事实表, 数据仓库, BI...

以前一直对维度表, 事实表, 数据分析, BI等概念等有一些模糊. 这几天的学习终于让这些有了一些眉目了: 维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度.前面的示例就可以有两个维度:类型和区域.另外每个维度还可以有子维度(称为属性),例如类别可以有子类型,产品名等属性.下面是两个常见的维度表结构: 产品维度表:Prod_id, Product_Name, Category, Color, Si

事实表 和 维度表

维度表示你要对数据进行分析时所用的一个量, 比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析. 这样的按..分析就构成一个维度.前面的示例就可以有两个维度:类型和区域.另外每个维度还可以有子维度(称为属性),例如类别可以有子类型,产品名等属性. 下面是两个常见的维度表结构: 产品维度表:Prod_id, Product_Name, Category, Color, Size, Price时间维度表:TimeKey, Season, Year, Month, Date 而事实

数据仓库--事实表和维度表

本文主要参考如下几篇文章:http://www.cnblogs.com/47613593/archive/2009/02/20/1394581.htmlhttp://jackwxh.blog.51cto.com/2850597/827968 1.数据仓库与操作型数据库的区别 数据仓库的物理模型与常见的操作型数据库的物理模型有很大不同.最明显的区别是:操作型数据库主要是用来支撑即时操作,对数据库的性能和质量要求都比较高,为了防止"garbage in,garbage out",通常设计操

什么是码表,什么是维度表?

整理业务库的库表字段和字段含义的时候,遇到了码表的概念,码表是什么,和维度表又是什么关系呢? 首先,码表没有明确的定义. 百度搜索码表,可以看到和数据处理相关的解释是:码表是 编码表(或代码表)的简称. 编码表: 是一种代码说明表格. 用来帮助用户明确无解释数据和字符 代码的含义. 例如:性别码表的值为男和女.类似于数据字典. 以性别代码表为例: sex value 1 男 2 女 我想获得一个性别为男的值只需要设置sex.id='1'就可以了. 以上就是关于码表的介绍. 我们不禁想到这和数据仓

MySQL 动态sql语句执行 用时间做表名

1. 描述 在使用数据的时候,我时候我们需要很多数据库,而且想用时间来做表名以区分.但是MySQL在存储过程中不支持使用变量名来做表名或者列名. 比如,有一个表我们想以"2015-07-16 12:00:00"命名. 2. 解决方案 如果只是更换一个普通的表名的话,很简单,直接使用下面sql语句即可: alter table old_table_name rename new_table_name 但是要以时间为表名,动态命名的话就不可以了.首先我们可以用NOW()函数获取系统当前的时