[英]Update datetime column by one minute for few rows having same datetime
我的這張桌子有很多數據:
+----+-------+-------------------------+
| id | user | datetime |
+----+-------+-------------------------+
| 1 | 34534 | 2015-08-12 10:03:22.043 |
| 2 | 32423 | 2015-08-12 03:29:18.097 |
| 3 | 12312 | 2015-08-13 03:24:10.073 |
| 4 | 34232 | 2015-08-13 03:24:10.073 |
| 5 | 32462 | 2015-08-13 03:24:10.073 |
| 6 | 45354 | 2015-08-14 04:12:04.023 |
+----+-------+-------------------------+
我想在完全相同的行的日期時間之間創建一分鍾的間隔。 與上述情況類似,行號為3、4、5。 這三個日期時間間隔為一分鍾。
嘗試這個
select id,
user,
[datetime] = case when rn = 1 then [datetime] else dateadd(minute,rn-1,[datetime]) END
from
(
select row_number()over(partition by [datetime] order by id) rn,*
from yourtable
) A
要更新表,請使用此
with cte As
(
select row_number()over(partition by [datetime] order by id) rn,*
from yourtable
)
Update CTE set [datetime] = case when rn = 1 then [datetime] else dateadd(minute,rn-1,[datetime]) END
While exists (Select * from table a
join table b
on b.Id > a.Id
and b.datetime = a.DateTime)
Update t set
datetime = DateAdd(minute, 1, DateTime)
From table t
where Exists (Select * from table
Where id > t.Id
and DateTime = t.DateTime)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.