Oracle随机数和时间间隔
2012-04-16 10:12
183 查看
-- 随机取值,因为对 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
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
相关文章推荐
- Oracle job 定时器的执行时间间隔 学习汇总
- Oracle Job 语法和时间间隔的设定
- Oracle 两个日期之间的时间间隔
- Oracle Job 语法和时间间隔的设定
- 判断Oracle的两个Undo日志之间的时间间隔
- ORACLE 定时运行存储过程经常使用时间间隔
- Oracle job定时器的执行时间间隔学习汇总
- Oracle JOB 间隔时间参考解析
- Oracle 两个日期之间的时间间隔
- Oracle JOB 间隔时间详解
- ORACLE 计算时间相减间隔
- oracle精确计算出两个时间的间隔
- Oracle Job 语法和时间间隔的设定
- oracle 随机数 随机时间
- Oracle JOB 间隔时间详解
- Oracle Job 语法和时间间隔的设定(转)
- ORACLE的时间间隔计算 比如求距某日期时间后30分钟的
- Oracle Job 语法和时间间隔的设定
- Oracle之Date格式转换&日期时间间隔操作
- Oracle常用函数:DateDiff() 返回两个日期之间的时间间隔自定义函数