oracle 随机获取日期,ORACLE获取指定日期的随机时间函数

CREATE OR REPLACE FUNCTION "DW_EVENTCENTER"."R_TIME"

(V_DATE IN VARCHAR2, V_BEGIN IN NUMBER := 0, V_END IN NUMBER := 1) RETURN DATE

IS

R_DATE DATE ;

BEGIN

SELECT TO_DATE(V_DATE,'YYYY-MM-DD') + DBMS_RANDOM.VALUE(V_BEGIN ,V_END) INTO R_DATE FROM DUAL;

RETURN R_DATE ;

END R_TIME;

调用时,可以通过select 查询 调用函数

SELECT R_TIME(20190101,0,1) FROM YXLS_LEFT_03

YXLS_LEFT_03 这张表中有多少条数据便会出现多少条随机时间

上面的V_DATE V_BEGIN V_END  就是调用函数时传入的三个参数   而后面的0和1就是传入的那一天的0点到24点

所以  你想取2019年1月1日的12点到24点   你就可以把 V_BEGIN设置为0.5

之后整个函数就可以返回你想要的某一天的随机时间  ,当然  你还想获取某段时间 也就是不只是一天的随机时间  你可以通过函数调用以下的SELECT语句  。

SELECT to_date(TRUNC(DBMS_RANDOM.VALUE(

to_number(to_char(to_date('20190101','yyyymmdd'),'J')),

to_number(to_char(to_date('20190501','yyyymmdd')+1,'J')))),'J')+

DBMS_RANDOM.VALUE(1,3600)/3600

prize_time

FROM dual;

这个的函数调用方法就不写了,如果有兴趣的话,你们可以自己尝试一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值