SQL Server 得到指定日期时间段内的随机的Sql代码


  本文标签:SQL Server 得到指定日期时间段内的随机

  此文章主要向大家描述的是SQL Server 得到指定日期时间段内的随机,我们首先是从SQL Server 得到指定日期时间段内的随机的Sql代码开始对其进行讲述的,以下就是文章的主要内容的详细解析  。

  Sql代码

  

  用视图辅助SQL Server 得到随机数

  

  用视图辅助得到随机数Sql代码

  1. alter VIEW v_RAND   
  2. AS   
  3. SELECT re=RAND()   
  4. GO  

  

  SQL Server 得到指定时间段的随机时间

  

  1. alter function fn_getdate   
  2. (   
  3. @begin_date datetime,   
  4. @end_date datetime   
  5. )   
  6. returns varchar(100)   
  7. as   
  8. begin   
  9. declare @second varchar(50)   
  10. if @begin_date is null   
  11. SET @begin_date=2009-09-17 08:01:01;   
  12. if @end_date is null   
  13. SET @end_date=2009-10-14 17:30:00;   
  14. SET @second = DATEDIFF ( second , @begin_date,@end_date)   
  15. declare @d1 datetime   
  16. declare @rand float   
  17. select @rand=re from v_RAND   
  18. set @d1 = dateadd(second,@rand*@second,@begin_date)   
  19. if datepart(hour,@d1) >18   
  20. begin   
  21. set @d1=dateadd(hour,-8,@d1)   
  22. end   
  23. if datepart(hour,@d1) <8   
  24. begin   
  25. set @d1=dateadd(hour,8,@d1)   
  26. end   
  27. return @d1   
  28. end   
  29. go   
  30. alter VIEW v_RAND  
  31. AS  
  32. SELECT re=RAND()  
  33. GO  

  SQL Server 得到指定时间段的随机时间

  1. alter function fn_getdate   
  2. (  
  3. @begin_date datetime,  
  4. @end_date datetime  
  5. )  
  6. returns varchar(100)  
  7. as  
  8. begin  
  9. declare @second varchar(50)  
  10. if @begin_date is null  
  11. SET @begin_date=2009-09-17 08:01:01;  
  12. if @end_date is null  
  13. SET @end_date=2009-10-14 17:30:00;  
  14. SET @second = DATEDIFF ( second , @begin_date,@end_date)  
  15. declare @d1 datetime  
  16. declare @rand float  
  17. select @rand=re from v_RAND  
  18. set @d1 = dateadd(second,@rand*@second,@begin_date)  
  19. if datepart(hour,@d1) >18  
  20. begin  
  21. set @d1=dateadd(hour,-8,@d1)  
  22. end  
  23. if datepart(hour,@d1) <8 
  24. begin  
  25. set @d1=dateadd(hour,8,@d1)   
  26. end  
  27. return @d1  
  28. end  

  go 测试

  Sql代码

  1. select dbo.fn_getdate(null,null)   
  2. select dbo.fn_getdate(null,null)   

  

  结果

  

  

  1. 10 12 2009 9:23AM 

  (所影响的行数为 1 行)

  以上的相关内容就是对SQL Server 得到指定日期时间段内的随机的介绍,望你能有所收获  。