Oracle随机数和时间间隔

-- 随机取值,因为对 100 采用求余函数,所以绝对值后是 正整数 0 100
SELECT ABS(MOD(DBMS_RANDOM.RANDOM, 100)), FROM DUAL;
--随机指定数字段整数数字
SELECT TRUNC(DBMS_RANDOM.VALUE(1, 3)) FROM DUAL;
-- 随机指定时间范围段日期 yyyy-mm-dd
SELECT TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(TO_DATE('2011-05-01',
                                                                 'yyyy-mm-dd'),
                                                         'J')),
                                       TO_NUMBER(TO_CHAR(TO_DATE('2011-05-31',
                                                                 'yyyy-mm-dd'),
                                                         'J')))),
               'J')
  FROM DUAL;
 
-- 随机时间 yyyy-mm-dd HH24:MI:SS 默认是 09:00 -17:30 都是秒
SELECT TRUNC(SYSDATE) + DBMS_RANDOM.VALUE(9*3600, 17.5*3600) / 3600 / 24
  FROM DUAL;


-----------------------------------------------------------------------------

描述                    INTERVAL参数值
每天午夜12点            'TRUNC(SYSDATE + 1)'
每天早上8点30分         'TRUNC(SYSDATE + 1) + (8*60+30)/(24*60)'
每星期二中午12点         'NEXT_DAY(TRUNC(SYSDATE ), ''TUESDAY'' ) + 12/24'
每个月第一天的午夜12点    'TRUNC(LAST_DAY(SYSDATE ) + 1)'
每个季度最后一天的晚上11点 'TRUNC(ADD_MONTHS(SYSDATE + 2/24, 3 ), 'Q' ) -1/24'
每星期六和日早上6点10分    'TRUNC(LEAST(NEXT_DAY(SYSDATE, ''SATURDAY"), NEXT_DAY(SYSDATE, "SUNDAY"))) + (6×60+10)/(24×60)'

 

--------------------------

1:每分钟执行

Interval => TRUNC(sysdate,'mi') + 1/ (24*60)

2:每天定时执行

例如:每天的凌晨1点执行

Interval => TRUNC(sysdate) + 1 +1/ (24)

3:每周定时执行

例如:每周一凌晨1点执行

Interval => TRUNC(next_day(sysdate,'星期一'))+1/24

4:每月定时执行

例如:每月1日凌晨1点执行

Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24

5:每季度定时执行

例如每季度的第一天凌晨1点执行

Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24

6:每半年定时执行

例如:每年7月1日和1月1日凌晨1点

Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24

7:每年定时执行

例如:每年1月1日凌晨1点执行

Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle提供了一些函数和包来生成随机数。其中,SYS_GUID()函数和DBMS_RANDOM包是常用的两种方式。SYS_GUID()函数返回一个全局唯一标识符,可以用作主键。DBMS_RANDOM包则提供了一些生成随机数的函数。 关于使用DBMS_RANDOM包生成随机数的示例,可以通过在查询语句中使用ORDER BY和ROWNUM来实现。例如,下面的查询语句从一个表中随机取一条记录: SELECT empno, ename, sal FROM ( SELECT empno, ename, sal FROM emp ORDER BY dbms_random.value ) WHERE rownum < 2; 这个查询语句会随机选择一条记录,并返回其员工号(empno)、姓名(ename)和薪水(sal)。每次执行该查询语句时,可能会返回不同的结果,因为使用了DBMS_RANDOM包生成了随机数来排序表中的记录。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [oracle 产生随机数](https://blog.csdn.net/xiaohai20102010/article/details/114802670)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [ORACLE 如何产生一个随机数](https://blog.csdn.net/jie8991/article/details/5327145)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值