1. 程式人生 > >MySQL學習筆記:生成時間維度表2

MySQL學習筆記:生成時間維度表2

RM -- date con xxx delet mage set 維度表

  實現目的:

  技術分享圖片

  測試:

# 測試 加一秒
SELECT DATE_SUB(DATE_ADD(CURRENT_DATE(), INTERVAL 1 SECOND), INTERVAL 1 SECOND);
SELECT DATE_FORMAT(DATE_ADD(CURRENT_DATE(), INTERVAL 1 SECOND),%H%i%s);# 第一秒
SELECT DATE_FORMAT(DATE_SUB(CURRENT_DATE(), INTERVAL 1 SECOND),%H%i%s);# 最後一秒
SELECT CURRENT_TIME();

  完整代碼:

# --
---------- 完整代碼 ---------- SET @d0 = DATE_SUB(DATE_ADD(CURRENT_DATE(), INTERVAL 1 SECOND), INTERVAL 1 SECOND); # 第一秒 SET @d1 = DATE_ADD(DATE_SUB(DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY), INTERVAL 1 SECOND), INTERVAL 1 SECOND);# 最後一秒 SET @time = DATE_SUB(@d0, INTERVAL 1 SECOND); SELECT @d0, @d1, @time
; USE test; # 建表 CREATE TABLE aa_time_test( time2 TIMESTAMP NOT NULL DEFAULT 0000-00-00 00:00:00, id VARCHAR(11) NOT NULL )ENGINE = INNODB DEFAULT CHARSET = utf8; # 插入數據 INSERT INTO aa_time_test SELECT @time := DATE_ADD(@time, INTERVAL 1 SECOND) AS time2, DATE_FORMAT(@time, %H%i%s) AS id FROM
table_xxx # 只需要xxx表數據量夠多即可 WHERE DATE_ADD(@time, INTERVAL 1 SECOND ) <= @d1 ORDER BY time2; # 查詢 SELECT * FROM test.aa_time_test; SELECT COUNT(*) FROM aa_time_test; # 86400 DELETE FROM test.`aa_time_test` WHERE id_5 IS NOT NULL; # 新增輔助列 CREATE TABLE table_xxx AS SELECT time2, id, LPAD((FLOOR(id/5)+1)*5,6,0) AS id_5 FROM test.`aa_time_test`;

END 2018-05-29 12:35:43

MySQL學習筆記:生成時間維度表2