我的漫漫程序之旅

          專注于JavaWeb開發(fā)
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0

          導航

          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(39)

          隨筆檔案(43)

          文章分類(304)

          文章檔案(257)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          SqlServer 得到指定日期時間段內(nèi)的隨機時間

          --用視圖輔助得到隨機數(shù)
          alter VIEW v_RAND
          AS
          SELECT re=RAND()
          GO

          --得到指定時間段的隨機時間
          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
          --測試
          select dbo.fn_getdate(null,null)

          --結(jié)果
          ---------------------------------------------------------------------------------------------------- 
          10 12 2009  9:23AM

          (所影響的行數(shù)為 
          1 行)


          posted on 2009-10-15 17:49 々上善若水々 閱讀(2531) 評論(1)  編輯  收藏

          評論

          # re: SqlServer 得到指定日期時間段內(nèi)的隨機時間[未登錄]  回復  更多評論   

          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)

          加上這段的話
          落在10~16點的幾率比 8~10和16~18點的幾率 為 3:2
          2009-10-20 17:40 | snail

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 鄂州市| 绩溪县| 库车县| 西畴县| 华池县| 策勒县| 文登市| 清水河县| 来宾市| 蛟河市| 漳浦县| 什邡市| 乌拉特后旗| 讷河市| 桐柏县| 赣州市| 新干县| 滨海县| 来安县| 南和县| 疏附县| 张掖市| 海晏县| 大竹县| 尚志市| 共和县| 耒阳市| 金坛市| 施秉县| 湘潭市| 且末县| 老河口市| 余姚市| 远安县| 芜湖县| 荔波县| 清水县| 页游| 绍兴市| 太和县| 东阿县|