在做專案任務時,需要將乙個日期範圍轉換為日期表。
例如:日期範圍(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...