1. 程式人生 > >MySQL 生成一個時間序列

MySQL 生成一個時間序列

 今天遇到一個需求是生成以下表格的資料,一整天24小時,每秒一行資料。

  

  尋找頗舊,找到另外兩個實現的例子,暫且學習一翻。另一個見另外一篇。

SELECT DATE_ADD('2018-01-01',INTERVAL @i := @i + 1 DAY) AS DATE
FROM
(SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1) AS tmp,
(SELECT @i := -1) t;

  其中,SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1是為了生成一個虛擬的表格,這樣子可以生成一樣多的行數,此次可用T表代替,只需滿足T表資料量大於所需即可。

SELECT DATE_ADD('2018-01-01',INTERVAL @i := @i + 1 DAY) AS DATE
FROM
    T
(SELECT @i := -1) t;