nDays := Round(dEndTime - dStartTime) + 1;
For i in 1..7 Loop
nDay := i + 1;
if i = 7 Then
nDay := 1;
End If;
SELECT To_Date(To_Char((dStartTime+Level-1),'DD.MM.YYYY')||' 00:00','DD.MM.YYYY HH24:MI'),
To_Date(To_Char((dStartTime+Level-1),'DD.MM.YYYY')||' 23:59','DD.MM.YYYY HH24:MI')
FROM DUAL
WHERE To_Char(dStartTime + Level -1 , 'd') = To_Char(nDay)
CONNECT BY Level <= nDays;
End Loop;
輸出:連接由像Oracle的SQL Server 2008級
22-JUL-12
23-JUL-12
18-JUL-12
19-JUL-12
20-JUL-12
21-JUL-12
我需要此查詢到SQL Server 2008轉換,請幫忙查找具有相同的解決方法......
我已經嘗試過上面的輸出與nDay從1到7的單個查詢.....
看看[這個問題](http://stackoverflow.com/questions/2200636/oracle-connect-by-clause-equivalent-in-sql-server),你可以在SQL服務器中同樣使用CTE到Oracle的連接(以及遞歸CTE現在是通過層次結構移動的ANSI標準方式)。 – 2012-07-17 13:11:32
N西thks爲您的rpl – 2012-07-18 10:01:34