我的漫漫程序之旅

          專注于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 々上善若水々 閱讀(2531) 評論(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

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


          網站導航:
           
          主站蜘蛛池模板: 抚州市| 湘阴县| 鸡西市| 贵德县| 博乐市| 淳化县| 丹棱县| 九江县| 平安县| 邵武市| 元谋县| 娱乐| 东阿县| 罗定市| 静宁县| 成安县| 建平县| 吉林省| 宿迁市| 扎鲁特旗| 婺源县| 阿拉善左旗| 郑州市| 新巴尔虎右旗| 奉新县| 卢龙县| 冕宁县| 扎兰屯市| 巍山| 绥宁县| 本溪| 泰安市| 商洛市| 湛江市| 彭阳县| 盘锦市| 大田县| 增城市| 工布江达县| 招远市| 偃师市|