簡體   English   中英

對於具有相同日期時間的幾行,將datetime列更新一分鍾

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM