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的函数,了解其使用的原理,这样能够更好的帮助开发者完成项目。