私はMyDatabase.MyTable.DateCol
datetimeで埋めたい数千行を持っています。各日付を前の日付よりも 1 秒大きくしたい。どうやってやるの?
1564 次
2 に答える
0
注文基準はよくわかりませんが、次を使用できます。
MIN(DateCol) OVER()
最初の日付を取得するには、および
ROW_NUMBER() OVER(ORDER BY DateCol, ID)
追加する秒数を取得するには (順序基準は異なる場合があります)。次に、2 つを組み合わせて、共通テーブル式を更新します。
WITH CTE AS
( SELECT ID,
DateCol,
NewDate = DATEADD(SECOND,
MIN(DateCol) OVER(),
ROW_NUMBER() OVER(ORDER BY DateCol, ID))
FROM MyDatabase.MyTable
)
UPDATE CTE
SET DateCol = NewDate;
列に日付がない場合は、開始日を入力するだけです (GETDATE()
以下)。
WITH CTE AS
( SELECT ID,
DateCol,
NewDate = DATEADD(SECOND,
GETDATE(),
ROW_NUMBER() OVER(ORDER BY DateCol, ID))
FROM MyDatabase.MyTable
)
UPDATE CTE
SET DateCol = NewDate;
于 2013-11-06T20:37:36.137 に答える