日期:2014-05-19  浏览次数:20506 次

要求计算一个时间段内的随机时间
指定一个时间,要求在正负5分钟中得到一个随机时间
思路是先减300秒,再在0~600秒中取随机数,加到原来的时间上
高手帮忙啊

------解决方案--------------------
用datediff

0~600随机数cast(ceiling(rand() * 600) as int)
------解决方案--------------------

declare @temptime datetime
declare @nowtime datetime
declare @randtime datetime
declare @n int

set @nowtime = getdate()
set @temptime = dateadd(second, -300, @nowtime)

set @n = rand() * 600

set @randtime = dateadd(second, @n, @temptime)

print @temptime
print @nowtime
print @randtime
------解决方案--------------------
try:

DECLARE @Below int
DECLARE @Up int
SELECT @Below=-300,@Up=300

SELECT DATEADD(second,CAST(RAND()*(@Up-@Below)+@Below AS decimal(38,0)),GETDATE())

--CAST(RAND()*(@Up-@Below)+@Below AS decimal(38,0))这一过程是随机取从@Below到@Up的数