2015-08-19 2 views
1

У меня есть эта таблица с большим количеством данных:обновление столбца даты и времени на одну минуту в течение нескольких строк, имеющих тот же 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 | 
+----+-------+-------------------------+ 

Я хочу, чтобы создать одну минуту разрыв между DateTime строк, которые точно так же. Как и в случае выше, номер строки 3,4,5. Один минутный пробел в эти три дня.

+1

Что делать, если вы уже успели «03: 25: 10,073» или что-то с зазором менее чем за минуту ? –

+0

@JamesZ За весь день данные одинаковы в моем столе .. так что их не будет ... – sumit

ответ

2

Попробуйте

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 
+0

Ваш запрос работает нормально. Вы можете добавить код обновления. Я хочу обновить это изменение. Спасибо за вашу большую помощь. – sumit

+1

@sumit - Обновлен код –

+0

Его синтаксическая ошибка - Неправильный синтаксис рядом с ключевым словом 'select'. – sumit

0
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) 
+0

Его просто рандомизируйте время каждой строки, я думаю .. – sumit

Смежные вопросы