導覽列清單

2022年9月24日 星期六

MSSQL 實作產生連續日期

        實作sql產生連續日期。

使用mssql版本:MSSQL Server2017

有關日期與時間的介紹可以參考MSSQL文件:日期與時間 。

DATEDIFF()函式可以計算時間差。

語法:DATEDIFF ( datepart , startdate , enddate )

datepart:日期計算單位。

startdate:開始計算點。

enddate:結束計算點。

建立資料表

create table myDate(

mDate varchar(30) not null

)

此範例以天為單位,計算天數差。

定義參數:開始計算點、結束計算點、累加數。

從0開始累加。

declare @sdate DateTime --開始
declare @edate DateTime  --結束
declare @count int --累加數
declare @aa int  -- 天數差
set @sdate = '20220920'   
set @edate = '20220930'  
set @count = 0
set @aa =  (select datediff(day,@sdate,@edate))

迴圈判斷:當@count小於等於@aa,迴圈會一直執行,直至條件不成立為止。

  while(@count<= @aa)
  begin
	insert into myDate (mDate) 
    	values (convert(varchar,@sdate,112))
    set @sdate = @sdate +1
    set @count = @count +1
  end 
 

完整範例:db<>Fiddle



沒有留言:

張貼留言