Tsql 向SQL Server中的现有日期时间值随机添加1到180分钟

Tsql 向SQL Server中的现有日期时间值随机添加1到180分钟,tsql,random,Tsql,Random,我们有一个包含两个datetime列的大表,starttime和endtime。未填充endtime。starttime有数据。我们希望这样填充endtime: update t set endtime = DateAdd(mi, some random int between 1 and 180, starttime) 这可以在T-SQL中完成,以便添加不同的分钟数,即所有行的开始时间添加的分钟数不同吗?您可以使用校验和/NEWID()方法为每行生成一个随

我们有一个包含两个datetime列的大表,starttime和endtime。未填充endtime。starttime有数据。我们希望这样填充endtime:

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

这可以在T-SQL中完成,以便添加不同的分钟数,即所有行的开始时间添加的分钟数不同吗?

您可以使用校验和/NEWID()方法为每行生成一个随机数:

UPDATE t
SET endtime = DATEADD(mi, ABS(CHECKSUM(NEWID())) % 180, starttime)

这是一个很好的答案,比兰德更容易记住。无论如何,由于未指定SQL Server的版本号,请注意:
update t
set endtime = DateAdd(mi, CAST( RAND()*1000 AS INT)  % 180, starttime)