生活随笔
收集整理的這篇文章主要介紹了
Sql Server常用命令整理篇:生成连续日期序列并循环
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、生成日期序列
特別注意:經驗證number不能超過2048,超過部分不可用
select observedate sdate
,DATEADD
(hour,23,observedate
) edate
from (
SELECTDATEADD
(DAY,number
,CAST
(@i as varchar)+'-01-01 00:00:00') observedate
FROMmaster
..spt_values
WHEREtype = 'p'
AND number
<=DATEDIFF
(day,CAST
(@i as varchar)+'-01-01 00:00:00',CAST
(@i as varchar)+'-12-31 00:00:00')
) x
2、循環插入或者這更新,循環語句寫法
特別注意:在sql server中數字類型和字符串拼接,使用cast(數字 as varchar)+'字符串’的形式,直接相加不可用
declare @i int
set @i=2013
while @i<2021
begininsert into envi_zhishu_emi_day_data
SELECT station_num
, sdate
,avg(emi_index
) as emi_index
FROM envi_zhishu_emi_hour_data d
,(select observedate sdate
,DATEADD
(hour,23,observedate
) edate
from (SELECTDATEADD
(DAY,number
,CAST
(@i as varchar)+'-01-01 00:00:00') observedate
FROMmaster
..spt_values
WHEREtype = 'p'AND number
<=DATEDIFF
(day,CAST
(@i as varchar)+'-01-01 00:00:00',CAST
(@i as varchar)+'-12-31 00:00:00')) x
) y
where date_time
>=sdate
and date_time
<=edate
group by station_num
,sdate
set @i=@i+1
end
總結
以上是生活随笔為你收集整理的Sql Server常用命令整理篇:生成连续日期序列并循环的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。