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