2013-03-07 77 views
0

給定的序列號我需要生成指定逃數日期值(從GETDATE開始,由1 increaed)如何生成日期在SQL Server

SlNr Date 
    1  3/7/2013 
    2  ? 
    3  ? 
    4  ? 
    5  ? 
    6  ? 
    7  ? 
    8  3/14/2013 
    .  ? 
    .  ? 

如何寫SQL查詢。請幫忙

+0

是什麼加1到'DATETIME'是什麼意思? – Oded 2013-03-07 11:04:21

回答

0

看看DATEADD()函數here

SELECT SlNr, DATEADD(DAY, SlNr, GETDATE()) FROM yourTable 
1

試試這個:

with cte as 
(select 1 Sno, convert(date,GETDATE(),103) mydate 
union all 

select Sno+1,DATEADD(dd,1,mydate) from cte where Sno<=10) 

select * from cte 

變化WHERE子句,以獲得更多的dates.You可以使用Insert intoselect之前在一些表中插入數據。

0

爲了讓您的顯示結果:

declare @firstdate date = '20130307' --Your first date in yyyymmdd format 

select slnr, dateadd(day, (slnr-1), @firstdate) [date] 
from yourTable 
order by slnr 

如果使用getdate(),結果將是每天不同。如果那你只需要replace @firstdate with getdate()函數。

0

您可以使用ROW_NUMBERDATEADD

WITH cte 
    AS (SELECT slnr, 
       date, 
       RN = Row_number() 
         OVER( 
         ORDER BY slnr) 
     FROM dates) 
UPDATE cte 
SET date = Dateadd(dd, cte.RN - 1, GETDATE()) 
WHERE date IS NULL; 

DEMO