0

指定されたシリアル番号の日付値を生成する必要があります (getdate から開始して 1 ずつ増やします)

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

SQLクエリの書き方. 助けてください

4

4 に答える 4

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句を変更して、より多くの日付を取得します。 Insert intobeforeを使用selectして、データをテーブルに挿入できます。

于 2013-03-07T11:15:51.127 に答える
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()機能します。

于 2013-03-07T11:16:15.290 に答える
0

ここDATEADD()で関数を見てください。

SELECT SlNr, DATEADD(DAY, SlNr, GETDATE()) FROM yourTable
于 2013-03-07T11:11:12.597 に答える
0

あなたが使用することができ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; 

デモ

于 2013-03-07T11:18:36.323 に答える