将带有“CONNECT BY LEVEL”的Oracle sql转换为T-SQL

时间:2013-10-15 17:10:51

标签: sql-server oracle

任何人都可以帮助将以下sql转换为T-SQL吗?

SELECT *
FROM (    SELECT LEVEL n, TO_DATE ('31/12/2010', 'DD/MM/YYYY') + NUMTODSINTERVAL (LEVEL, 'day') CurrDate
          FROM DUAL
    CONNECT BY LEVEL <= 2000);

2 个答案:

答案 0 :(得分:4)

这应该可以解决问题,我想

select dateadd(d, number, '2010-12-31') 
from master..spt_values 
where type='p' 
and number between 1 and 2000

答案 1 :(得分:3)

没关系......发现它......

with n as
(
SELECT TOP (DATEDIFF(DAY, '2010-12-31', '2015-12-31') + 1) 
n = ROW_NUMBER() OVER (ORDER BY [object_id])
FROM sys.all_objects
)
 SELECT DATEADD(DAY, n-1, '2010-12-31')
 FROM n;