SQL Server 得到指定日期時間段內的隨機的Sql代碼
作者:佚名
我們今天主要像大家描述的是SQL Server 得到指定日期時間段內的隨機以及對SQL Server 得到指定日期時間段內的隨機的實際應用代碼的描述。
此文章主要向大家描述的是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 得到指定日期時間段內的隨機的介紹,望你能有所收獲。
【編輯推薦】
責任編輯:佚名
來源:
清華大學出版社