2017-06-14 84 views
0

在列「時間戳」(表中:rand_numbers「)是每行中的相同的時間戳:
2016年9月26日○點00分13秒
2016-09 -26 00:00:13
2016年9月26日00:00:13
2016年9月26日00:00:13MYSQL:添加每行一分鐘的時間戳

我想在每行1分鐘增加,從而導致:
2016-09-26 00:00:13
2016-09-26 00:01:13
2016-09-26 00:02:13
2016年9月26日0時03分13秒

這不起作用:

CREATE PROCEDURE myproc() 
BEGIN 
    DECLARE i int DEFAULT 1; 
    WHILE i <= 10 DO 
     INSERT INTO rand_numbers (timestamp) 
     VALUES ('2016-09-26 00:00:13' + INTERVAL 1 MINUTE); 
     SET i = i + 1; 
    END WHILE; 
END 

enter image description here

+1

歡迎使用堆棧溢出,請[參觀](https://stackoverflow.com/tour),請確保您閱讀[我如何問一個好問題?](https://stackoverflow.com/help/how-to-ask)並用更多信息更新了您的問題。 「 – lordrhodos

+0

」不起作用「不是一個有用的診斷 – symcbean

回答

0

只需使用循環插入

DELIMITER // 
CREATE PROCEDURE myproc() 
BEGIN 
    DECLARE count INT DEFAULT 0; 
    DECLARE max INT DEFAULT 10; 

    WHILE(count < max) DO 
     INSERT INTO rand_numbers (timestamp) VALUES ('2016-09-26 00:00:13' + INTERVAL count MINUTE); 
     SET count = count + 1; 
    END WHILE; 
END// 
DELIMITER ; 

使用執行call myproc();

+0

它不起作用(你的語法錯誤......);但我認爲只有幾件事情有所改變。如何設置「Delimeter $$」?並且「myproc()」是否需要像「myproc(example_name)」這樣的特定名稱?請參閱上面的更新,瞭解我如何應用您的建議查詢 – flobrr

+0

其中是查詢中的循環語句? – flobrr

+0

檢查我的更新 –

0

試試這個

DECLARE @intFlag INT 
DECLARE @VALUE DATETIME 

SET @intFlag = 1 
SET @VALUE = CURRENT_TIMESTAMP 

--print @VALUE 
WHILE (@intFlag <=5) 
BEGIN 
    PRINT (DATEADD(minute,1,@VALUE)); 
    SET @VALUE = (DATEADD(minute,1,@VALUE)); 
    SET @intFlag = @intFlag + 1 
    CONTINUE; 
END