我是 mysql 脚本的新手,我想通过将 00:00:00
时间增加到 30
分钟来执行此查询。
像这样的
Select count(*)
FROM ctrdb.CTR_LINE_ITEM
where LOAD_DATE BETWEEN '2016-05-18 00:00:00' AND '2016-05-18 00:30:00'
order by load_date;
Select count(*)
FROM ctrdb.CTR_LINE_ITEM
where LOAD_DATE BETWEEN '2016-05-18 00:30:00' AND '2016-05-18 00:60:00'
order by load_date;
你们能帮帮我吗?
最佳答案
如果你想在 mysql 中实现这个并且想为每个查询获得单独的结果集 那么您需要使用存储过程在循环中运行您的查询。
在 mysql 中读取循环 http://www.mysqltutorial.org/stored-procedures-loop.aspx
或者没有多个查询那么你也可以使用union
DELIMITER $$
CREATE PROCEDURE getdata()
BEGIN
DECLARE x INT;
DECLARE maximum INT; # you can use date as well
DECLARE startdate DATE;
DECLARE enddate DATE;
SET x =0;
SET maximum = 10;
SET startdate = '2016-05-18 00:00:00';
loop_label: LOOP
IF x > 10 THEN
LEAVE loop_label;
END IF;
SET x = x + 1;
SET enddate = startdate + INTERVAL 30 MINUTE;
Select count(*) ,startdate
FROM ctrdb.CTR_LINE_ITEM
where LOAD_DATE BETWEEN '2016-05-18 00:00:00' AND '2016-05-18 00:30:00'
order by load_date;
SET startdate = startdate + INTERVAL 30 MINUTE;
END LOOP;
END $$
DELIMITER ;
关于mysql - 需要通过更改参数来循环 MySql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37339497/