我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          SqlServer 得到指定日期時間段內的隨機時間

          --用視圖輔助得到隨機數
          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)

          --結果
          ---------------------------------------------------------------------------------------------------- 
          10 12 2009  9:23AM

          (所影響的行數為 
          1 行)


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

          評論

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

          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

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


          網站導航:
           
          主站蜘蛛池模板: 尉氏县| 澜沧| 阿瓦提县| 武夷山市| 郴州市| 宁阳县| 墨竹工卡县| 尼玛县| 连城县| 韶关市| 宜兰县| 和平区| 太仆寺旗| 门头沟区| 宁强县| 平凉市| 南投县| 大理市| 钟祥市| 蓬莱市| 岳西县| 吴桥县| 合作市| 方城县| 盱眙县| 隆子县| 菏泽市| 新平| 民权县| 浮山县| 大新县| 河间市| 湘潭市| 中宁县| 梨树县| 宿州市| 沙洋县| 湘潭县| 德保县| 乐山市| 云南省|