DECLARE @date1 varchar(40);
DECLARE @date2 varchar(40);
DECLARE @sqlt varchar(4000);
DECLARE @date DATETIME = '2023-05-01 00:00:00';
WHILE @date < '2023-05-08'
BEGIN
-- 循环体
SET @date1 = CONVERT(VARCHAR(19), @date, 120);
SET @date2 = CONVERT(VARCHAR(13), @date, 120)+'%';
select a.MNID,'' elementid, @date1 as DATATIME,AVG(AVGVALUE) AVGVALUE,'GOOD' as STATE,
'' as man,'' as updatetime from t_ha_site_factor a left join T_HA_FACTOR d on a.FACTORID=d.FACTORID
left join DATATABLE_REALTIME_004_202305 c on a.MNID=c.MNID where (d.CALCDFLAG='1' or d.CALCDFLAG is null) and c.DATATIME like @date2 group by a.MNID;
PRINT @date;
select a.MNID,'' elementid,@date1 as DATATIME,AVG ( AVGVALUE ) AVGVALUE,'GOOD' as STATE,
'' as man,'' as updatetime from t_ha_site_factor a left join T_HA_FACTOR d on a.FACTORID=d.FACTORID left join DATATABLE_REALTIME_004_202305 c
on a.MNID=c.MNID where d.CALCDFLAG='2' and c.DATATIME=@date1 GROUP BY a.MNID;
SET @date = DATEADD(HOUR, 1, @date);
END
根据时间循环执行sql语句
于 2023-05-24 18:00:17 首次发布