случайное добавление от 1 до 180 минут к существующему значению даты и времени в SQL Server - PullRequest
4 голосов
/ 18 февраля 2012

У нас есть большая таблица с двумя столбцами datetime, starttime и endtime. Конечное время не заселено. Время начала имеет данные. Мы хотели бы заполнить конечное время следующим образом:

         update t
         set endtime = DateAdd(mi, some random int between 1 and 180, starttime)

Можно ли это сделать в T-SQL, чтобы было добавлено различное количество минут, т. Е. Во всех строках не было одинакового количества минут, добавленных к времени начала?

Ответы [ 2 ]

6 голосов
/ 18 февраля 2012

Вы можете сгенерировать случайное число для каждой строки, используя подход CHECKSUM / NEWID ():

UPDATE t
SET endtime = DATEADD(mi, ABS(CHECKSUM(NEWID())) % 180, starttime)
0 голосов
/ 18 февраля 2012
update t
set endtime = DateAdd(mi, CAST( RAND()*1000 AS INT)  % 180, starttime)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...