delimiter $$
CREATE PROCEDURE test()
begin
declare begintime int(10);
set begintime = unix_timestamp("2016-7-31 23:59:59");
loop1:LOOP
IF begintime > unix_timestamp("2016-9-30 23:59:59") then
leave loop1;
END IF;
select * from tablename where timestamp between begintime and begintime+1800;
set begintime = begintime + 1800;
END LOOP loop1;
end;$$
可以使用預存程序來解決,假如你表中有一個時間戳字段timestamp,需要8,9月每半小時的數據,可以創建一個存儲過程如下
基本意思就是每次循環select半小時資料。然後每次循環時間加半小時。
預存程序沒有嚴格測試,不過思路可以參考下。 。 。
為什麼不寫條sql然後半小時執行一次讀出前半小時內的資料呢?