zoukankan      html  css  js  c++  java
  • 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 

  • 相关阅读:
    I.MX6 Surfaceflinger 机制
    理解 Android Fragment
    RPi 2B DDNS 动态域名
    RPi 2B IPC webcam server
    理解 Android MVP 开发模式
    I.MX6 system.img unpack repack
    can't set android permissions
    VMware Ubuntu 共享文件夹
    解决oracle数据库连接不上的问题
    perfect-scrollbar示例
  • 原文地址:https://www.cnblogs.com/hider/p/9103137.html
Copyright © 2011-2022 走看看