mssql范围随机时间之旅(范围随机时间 mssql)

MSSQL范围随机时间之旅

如果需要在时间范围内生成一个随机时间,在MSSQL中可以使用DATEADD功能来帮助完成这种操作。MSSQL中可以使用DATEADD功能来快速地在时间范围内生成一定数量的随机时间。

假设现在有一个时间范围,例如起始时间为2020-04-01,终止时间为2020-05-30,要求在时间范围内生成10个随机的时间,可以这样操作:

1. 使用DATEDIFF函数来计算两个时间的时间差(即从起始时间到终止时间的时间跨度):

SELECT DATEDIFF(hh, ‘2020-04-01’, ‘2020-05-30’)

2. 生成10个随机的小时数,将其存放在一个变量表中:

declare @hoursTbl table (hours bigint not null)

insert into @hoursTbl

select floor(DATEDIFF(hh, ‘2020-04-01’, ‘2020-05-30’)/(10.0-1)) * (row_number() over (order by (select null)) – 1)

from sys.all_columns AS a cross join sys.all_columns AS b

3. 使用DATEADD函数和上面的变量表,来计算出10个随机的时间:

select dateadd(hh,h.hours,’2020-05-30′)

from @hoursTbl h

使用这种方式可以快速生成多个随机的时间,这在构建测试数据时非常实用。当然DATEADD函数也可以用在其他时间单位上,包括Day,Minute,Second等。 查看MSSQL文档,可以发现,DATEADD函数用于计算出时段相距特定时间段的值。

从例子中也可以看出,MSSQL中有很多强大的函数,可以帮助我们快速完成编程任务,因此在编写编程任务的时候,要多了解MSSQL的函数,了解其使用的原理,这样能够更好的帮助开发者完成项目。


数据运维技术 » mssql范围随机时间之旅(范围随机时间 mssql)