2013-03-07 74 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