此文章主要向大家描述的是SQL Server 得到指定日期时间段内的随机,我们首先是从SQL Server 得到指定日期时间段内的随机的Sql代码开始对其进行讲述的,以下就是文章的主要内容的详细解析。
Sql代码
用视图辅助SQL Server 得到随机数
用视图辅助得到随机数Sql代码
alter VIEW v_RAND AS SELECT re=RAND() GO
SQL Server 得到指定时间段的随机时间
alter function fn_getdate ( @begin_date datetime, @end_date datetime ) returns varchar(100) as begin declare @second varchar(50) if @begin_date is null SET @begin_date='2009-09-17 08:01:01'; if @end_date is null SET @end_date='2009-10-14 17:30:00'; SET @second = DATEDIFF ( second , @begin_date,@end_date) declare @d1 datetime declare @rand float select @rand=re from v_RAND set @d1 = dateadd(second,@rand*@second,@begin_date) if datepart(hour,@d1) >18 begin set @d1=dateadd(hour,-8,@d1) end if datepart(hour,@d1) <8 begin set @d1=dateadd(hour,8,@d1) end return @d1 end go alter VIEW v_RAND AS SELECT re=RAND() GO
SQL Server 得到指定时间段的随机时间
alter function fn_getdate ( @begin_date datetime, @end_date datetime ) returns varchar(100) as begin declare @second varchar(50) if @begin_date is null SET @begin_date='2009-09-17 08:01:01'; if @end_date is null SET @end_date='2009-10-14 17:30:00'; SET @second = DATEDIFF ( second , @begin_date,@end_date) declare @d1 datetime declare @rand float select @rand=re from v_RAND set @d1 = dateadd(second,@rand*@second,@begin_date) if datepart(hour,@d1) >18 begin set @d1=dateadd(hour,-8,@d1) end if datepart(hour,@d1) <8 begin set @d1=dateadd(hour,8,@d1) end return @d1 end
go 测试
Sql代码
select dbo.fn_getdate(null,null) select dbo.fn_getdate(null,null)
结果
10 12 2009 9:23AM
(所影响的行数为 1 行)
以上的相关内容就是对SQL Server 得到指定日期时间段内的随机的介绍,望你能有所收获。