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