ORACLE 隨機數相關問題

2021-08-25 18:02:00 字數 1627 閱讀 3507

1.隨機數包

selectdbms_random.value

fromdual;

2.在[0..100]範圍內取隨機數

selecttrunc(dbms_random.value(0,100))

fromdual;

3.大於字元『a』的10個字元隨機字串

selectdbms_random.string(』a』,10)

fromdual;

4.單個小寫隨機字元

selectchr(round(dbms_random.value(97,122)))

fromdual;

5.在過去10天內取隨機日期

selectto_date(trunc(dbms_random.value(to_number(to_char(sysdate-10,

』j』

) ),

to_number(to_char(sysdate,』j』))

) ),

』j』

) fromdual;

6.在過去30分鐘內取隨機時間

select(sysdate-1/24/60*30)+dbms_random.value(1,1800)/3600/24

fromdual;

7.在2023年7月1日---2023年3月8日之間,任取乙個隨機值;

select to_date(trunc(dbms_random.value(to_number(to_char(to_date('20100701010101','yyyy-mm-dd hh24:mi:ss'), 'j')),

to_number(to_char(to_date('20110308010101','yyyy-mm-dd hh24:mi:ss'), 'j')))),

'j')

from dual;

8.2023年7月1日以後的240天內隨機取乙個值

select to_date('20100701010101','yyyy-mm-dd hh24:mi:ss') + dbms_random.value(1,240) from dual;

9.產生隨機日期

oracle將日期作為過去某個關鍵日期(如果你好奇的話,我可以告訴你這個日期是西元前2023年1月1日)的整數偏移 量來儲存。這就意味著你可以通過尋找與你希望的起始日期相對應的整數,然後向它加入乙個隨機的整數來隨機生成乙個指定範圍內的日期。

使用to_char函式和『j』格式**,你可以為今天的日期生成乙個內部日期數:

select to_char(sysdate, 'j') from dual;

例如,要生成乙個2023年內的任意日期,你可以首先確定2023年1月1日的日期整數;

select to_char(to_date('01/01/03','mm/dd/yy'),'j')from dual;

系統給的結果是2452641。所以要生成該年度內的任意日期,我們就要用帶有low_value等於2452641和high_value等於 2452641+364引數的dbms_random.value,再把它轉換成日期:

select to_date(trunc(dbms_random.value(2452641,2452641+364)),'j') from dual;

ORACLE 隨機數相關問題

1.隨機數包 select dbms random.value from dual 2.在 0.100 範圍內取隨機數 select trunc dbms random.value 0,100 from dual 3.大於字元 a 的10個字元隨機字串 select dbms random.stri...

c 隨機數相關

這裡列出幾個常用但,效果一般的隨機數生成方式 最大的陷阱可能還是來自我們的random 上面的文章,寫的很一般,很一般 具體的還是看我們c in depth 中的一篇關於random的文章 the parameterless constructor forrandomtakes the curren...

隨機數 簡學 隨機數問題

隨機是概率論用語,指事前不可預言的,即在相同條件下重複進行試驗,每次結果未必相同,或知道事物過去的狀況,但未來的發展卻不能完全肯定,隨機也有 真隨機 與 偽隨機 真隨機 比如量子力學,因為乙個放射性物質原子下一分鐘是否發生衰變是真正隨機的,不可預言的 偽隨機 由經過系統的不同的因素造成,或是由於忽略...