Sql 用随机时间更新日期

Sql 用随机时间更新日期,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我有一个datetime列,它们都在上午12:00。有没有一种方法可以在保持相同日期(天)值的同时,用随机的小时数、分钟数更新到最接近的1/2小时 这里有一个使用dateadd的选项: update Activities set ActivityDate = DateAdd(minute, 30 * (abs(checksum(NewId())) % 47), ActivityDate); 这是一篇关于生成随机数的好文章。使用该值,

我有一个
datetime
列,它们都在上午12:00。有没有一种方法可以在保持相同日期(天)值的同时,用随机的小时数、分钟数更新到最接近的1/2小时


这里有一个使用
dateadd
的选项:

update Activities
set ActivityDate = DateAdd(minute, 
                           30 * (abs(checksum(NewId())) % 47), ActivityDate);
这是一篇关于生成随机数的好文章。使用该值,乘以30分钟,得到最接近的半小时

请注意,这使用了
%47
,因为一天中有1440分钟——在同一天中分为48个可能的半小时段

update Activities
set ActivityDate = DateAdd(minute, 
                           30 * (abs(checksum(NewId())) % 47), ActivityDate);