MySQL学习笔记:生成时间维度表
# ---- 对应时间戳怎么生成的? ----
/*
TIME_CD TIME_CD1
000000 000005
000001 000005
000002 000005
000003 000005
000004 000005
000005 000010
*/
利用MySQL常用日期函数生成时间维度表
- 日期时间函数
- 按小时、按分钟、按秒生成
SELECT STR_TO_DATE('September 02, 2016','%M %d, %Y') AS DATE; # 2016-09-02
SELECT CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP;
# 2018-05-29 01:00:54 2018-05-29 01:00:54
MySQL快速生成时间维度表
SET @d0 = '2018-01-01';
SET @d1 = '2018-12-31';
SET @date = DATE_SUB(@d0, INTERVAL 1 DAY); USE test; CREATE TABLE aa_time_dim(
DATE DATE DEFAULT NULL,
id INT(11) NOT NULL,
Y SMALLINT(6) DEFAULT NULL,
m SMALLINT(6) DEFAULT NULL,
d SMALLINT(6) DEFAULT NULL,
yw SMALLINT(6) DEFAULT NULL,
w SMALLINT(6) DEFAULT NULL,
q SMALLINT(6) DEFAULT NULL,
wd SMALLINT(6) DEFAULT NULL,
m_name CHAR(10) DEFAULT NULL,
wd_name CHAR(10) DEFAULT NULL,
PRIMARY KEY (id))ENGINE = INNODB DEFAULT CHARSET = utf8; SELECT * FROM aa_time_dim; INSERT INTO aa_time_dim
SELECT
@date := DATE_ADD(@date, INTERVAL 1 DAY) AS DATE,
DATE_FORMAT(@date, '%Y%m%d') AS id,
YEAR(@date) AS Y,
MONTH(@date) AS m,
DAY(@date) AS d,
DATE_FORMAT(@date, '%x') AS yw,
WEEK(@date,3) AS w,
QUARTER(@date) AS q,
WEEKDAY(@date) + 1 AS wd,
MONTHNAME(@date) AS m_name,
DAYNAME(@date) AS wd_name
FROM xxx
WHERE DATE_ADD(@date,INTERVAL 1 DAY) <= @d1
ORDER BY DATE; SELECT * FROM aa_time_dim; DROP TABLE aa_time_dim;
注意:此处的表xxx,仅仅需要有多于需要生成日期的记录数即可。思路是从xxx表选择多行数据,同时生成对应的日期字段。
结果:

END 2018-05-29 01:15:25
MySQL学习笔记:生成时间维度表的更多相关文章
- MySQL学习笔记02_数据库和表的基本操作
02_1 操作数据库 (1)创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification[, create_specifica ...
- MySQL学习笔记_4_MySQL创建数据表(下)
MySQL创建数据表(下) 五.数据表类型及存储位置 1.MySQL与大多数数据库不同,MySQL有一个存储引擎概念.MySQL可以针对不同的存储需求选择不同的存储引擎. 2. showengines ...
- MySQL学习笔记:生成时间维度表2
实现目的: 测试: # 测试 加一秒 SECOND), INTERVAL SECOND); SECOND),'%H%i%s');# 第一秒 SECOND),'%H%i%s');# 最后一秒 SELEC ...
- MySQL学习笔记_时间,多表更新,数据库元数据
MySQL技术内幕一.MySQL基础知识1.1.显示表中的列SHOW COLUMNS FROM order_info like 'order%'1.2.显示表SHOW TABLES LIKE 'ord ...
- MySQL学习记录--生成时间日期数据
时间数据格式组件: 组件 定义 范围 YYYY 年份,包括世纪 1000~9999 MM 月份 01(January)~12(December) DD 日 01~31 HH 小时 00~23 HHH ...
- MySQL学习笔记_2_MySQL创建数据表(上)
MySQL创建数据表(上) 一.创建数据表的SQL语句模型[弱类型] CREATETABLE [IF NOT EXISTS] 表名称( 字段名1列的类型[属性][索引], 字段名2 列的类型[属性][ ...
- MySQL学习笔记_3_MySQL创建数据表(中)
MySQL创建数据表(中) 三.数据字段属性 1.unsigned[无符号] 可以让空间增加一倍 比如可以让-128-127增加到0-255 注意:只能用在数值型字段 2.zerofill[前导零] ...
- MySQL学习笔记2(多表操作)
外键:使两张表之间存在关联 特点: 1.从表外键的值是对主表主键的引用 2.从表外键类型,必须与主表主键类型一致 示例: 创建两个表并准备数据: USE mybase; CREATE TABLE ca ...
- MySQL学习笔记:从一个表update到另外一个表
# ---- 测试数据 ---- # 表1 CREATE TABLE temp_x AS AS c_id, 1.11 AS c_amount FROM DUAL UNION ALL AS c_id, ...
随机推荐
- NSLineBreakByWordWrapping和NSLineBreakByCharWrapping
在iOS开发过程中,在文本的lineBreakMode中有以下几个功能: NSLineBreakByWordWrapping = 0 //以空格为界,保留整个单词. NSLineBreakByChar ...
- eos源码分析和应用(一)调试环境搭建
转载自 http://www.limerence2017.com/2018/09/02/eos1/#more eos基于区块链技术实现的开源引擎,开发人员可以基于该引擎开发DAPP(分布式应用).下面 ...
- Python 不定参数函数
1. 元组形式 def test1(*args): print('################test1################') print(type(args)) print(arg ...
- python的if条件语句的语法和案例
1.条件语句 缩进用4个空格 if条件: #条件成功, else: #条件不成功 if条件:{ #条件成功, #条件成功, }else{ #条件不成功, #条件不成功, } if的语法就是这样或者是用 ...
- python中的常用模块(2)
在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件), 经常要对大量文件和大量路径进行操作,这就依赖于os模块. 1.当前路径及路径 ...
- 疯狂Android讲义
1 Android应用和开发环境2 Android应用的界面编程3 Android的事件处理4 Activity Fragment5 Intent IntentFilter6 Android应用的资源 ...
- openstack虚拟机启动过程源码分析
源码版本:H版 以nova-api为起点开始分析! 一.在nova-api进程中进行处理 根据对nova api的分析,当请求发过来的时候,由相应的Controller进行处理,此处如下: nova/ ...
- FPGA基础知识8(FPGA静态时序分析)
任何学FPGA的人都跑不掉的一个问题就是进行静态时序分析.静态时序分析的公式,老实说很晦涩,而且总能看到不同的版本,内容又不那么一致,为了彻底解决这个问题,我研究了一天,终于找到了一种很简单的解读办法 ...
- OI刷题录——hahalidaxin
16-3-25 —— bzoj 2049 [Sdoi2008]Cave 洞穴勘测:LCT入门 bzoj 2002 [Hnoi2010]Bounce 弹飞绵羊:LCT Tsinsen A1303. t ...
- 函数嵌套>作用域>闭包函数
一:函数对象 函数是第一类对象,即表示函数可以当做数据传递 可以被引用:把函数内存地址赋值给一个变量名,仍然遵循函数的调用规则. 可以被当做参数传递:传递的是函数的运行的结果#可以当做返回值 把函数作 ...