我需要为给定的序列号生成日期值(从 getdate 开始并增加 1)
SlNr Date
1 3/7/2013
2 ?
3 ?
4 ?
5 ?
6 ?
7 ?
8 3/14/2013
. ?
. ?
如何编写sql查询。请帮忙
我需要为给定的序列号生成日期值(从 getdate 开始并增加 1)
SlNr Date
1 3/7/2013
2 ?
3 ?
4 ?
5 ?
6 ?
7 ?
8 3/14/2013
. ?
. ?
如何编写sql查询。请帮忙
尝试这个 :
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
子句以获取更多日期。您可以使用Insert into
beforeselect
在某个表中插入数据。
看看这里DATEADD()
的功能。
SELECT SlNr, DATEADD(DAY, SlNr, GETDATE()) FROM yourTable
您可以使用ROW_NUMBER
和DATEADD
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;
要获得显示的结果:
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()
功能。