SQL Server 得到指定日期時(shí)間段內(nèi)的隨機(jī)的Sql代碼
此文章主要向大家描述的是SQL Server 得到指定日期時(shí)間段內(nèi)的隨機(jī),我們首先是從SQL Server 得到指定日期時(shí)間段內(nèi)的隨機(jī)的Sql代碼開始對(duì)其進(jìn)行講述的,以下就是文章的主要內(nèi)容的詳細(xì)解析。
Sql代碼
用視圖輔助SQL Server 得到隨機(jī)數(shù)
用視圖輔助得到隨機(jī)數(shù)Sql代碼
- alter VIEW v_RAND
 - AS
 - SELECT re=RAND()
 - GO
 
SQL Server 得到指定時(shí)間段的隨機(jī)時(shí)間
- 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 得到指定時(shí)間段的隨機(jī)時(shí)間
- 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 測(cè)試
Sql代碼
- select dbo.fn_getdate(null,null)
 - select dbo.fn_getdate(null,null)
 
結(jié)果
- 10 12 2009 9:23AM
 
(所影響的行數(shù)為 1 行)
以上的相關(guān)內(nèi)容就是對(duì)SQL Server 得到指定日期時(shí)間段內(nèi)的隨機(jī)的介紹,望你能有所收獲。
【編輯推薦】















 
 
 
 
 
 
 