sql server遞迴日期

2022-02-15 17:58:49 字數 961 閱讀 9843

在做專案任務時,需要將乙個日期範圍轉換為日期表。 

例如:日期範圍(2023年01月21日~2023年02月20日)、轉換成一日為單位的日期表,如下。 

2017-01-21 

2017-01-22 

2017-01-23 

…… 2017-02-19 

2017-02-20

直接上sql,查詢結果如上:

set language n'simplified chinese'

declare @startdate nvarchar(max) = '2017-01-21'

,@enddate nvarchar(max) = '2017-02-21'

;with temp

as(select cast(@startdate as date) as dt

union all

select cast(dateadd(day,1,dt) as date) from temp where dateadd(day,1,dt)<=@enddate

)select * from temp

;

另外,生成數字序列1到100的方法,如下:

with t

as(select 1 as dt

union all

select dt+1 from t

where dt+1<=100

)select dt from t option(maxrecursion 0)

;

更簡單的方法,如下:

select number from master..spt_values where type='p' and number between 1 and 100

該函式最大值number<=2015

sqlserver 日期函式

一直都在用oracle,對sqlserver中的一些函式很不熟悉,在工作用偶爾會用到,貼在這裡,便於以後查詢 取出資料庫欄位中datetime列的日期部分 1 select datename year,getdate datename month,getdate datename day,getda...

SQL Server 日期函式

獲取當前系統日期時間。取決於 1 精度要求 2 utc時間還是系統時間 3 要不要帶時區 與 getdate 和 getutcdate 比較而言,sysdatetime 和 sysutcdatetime 的秒的小數部分精度更高。sysdatetimeoffset 包含系統時區偏移量。sysdatet...

SQLServer 遞迴查詢

感謝文章遞迴查詢,正好趁此機會梳理一下資料庫的遞迴查詢 公用表表示式 cte 可以認為是在單個 select insert update delete 或 create view 語句的執行範圍內定義的臨時結果集。公用表表示式可以包括對自身的引用,這種表示式稱為遞迴公用表表示式。with expre...