我試圖了解這行 Oracle 腳本在做什么以便我將其轉換為 SQL Server。
table(cast(multiset(select trunc(sysdate)-level
from dual
connect by level <= 100) as sys.odcidatelist))
有人可以幫我把這個腳本翻譯成 SQL Server,并解釋一下這個腳本在做什么嗎?
uj5u.com熱心網友回復:
如果您沒有日歷表(強烈推薦),您可以使用臨時計數表。
例子
Select Top 100 D=convert(date,dateadd(DAY,-row_number() Over (Order By (Select NULL)) 1,getdate()))
From master..spt_values -- Any Table of appropiate size would do.
Order By D desc
結果
D
2021-12-06
2021-12-05
2021-12-04
2021-12-03
...
2021-09-01
2021-08-31
2021-08-30
2021-08-29
uj5u.com熱心網友回復:
最有可能從當前日期獲取過去 100 天的日期串列。
您將獲得在 Oracle 中運行以下 SQL 的兩個過去日期的串列。例如,如果您在 07-DEC-2021 運行,那么您將獲得兩個日期 06-DEC-2021 和 05-DEC-2021。
select * from
table(
cast(
multiset(
select trunc(sysdate)-level from dual
connect by level <= 2
) as sys.odcidatelist
)
)
要在 SQL Server 中獲得等效功能,您可以參考以下帖子。
使用函式獲取兩個日期之間的日期串列
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/375231.html
標籤:sql sql-server 甲骨文
