常用用到的一些简单的sql,有些是知道但不常用的话不能马上写出来比方定时时间,格式时间
得到日期的不同内容to_char 格式化
to_char(sysdate,‘d’) 每周第几天
to_char(sysdate,‘dd’) 每月第几天
to_char(sysdate,‘ddd’) 每年第几天
to_char(sysdate,‘ww’) 每年第几周
to_char(sysdate,‘mm’) 每年第几月
to_char(sysdate,‘q’) 每年第几季
to_char(sysdate,‘yyyy’) 年
产生两个日期 时间段之间的随机日期时间 SELECT TO_DATE ( TRUNC ( DBMS_RANDOM. VALUE(TO_NUMBER (TO_CHAR (TO_DATE ('20200401', 'yyyymmdd'),'J' )), TO_NUMBER (TO_CHAR (TO_DATE ('20200630', 'yyyymmdd') + 1,'J')) )),J' ) + DBMS_RANDOM. VALUE (1, 3600) / 3600 prize_time FROM dualmerge into GW_B_STINFO using shen on (GW_B_STINFO.STCD = shen.测站编码) when matched then update set GW_B_STINFO.STHN = 2
.每分钟执行 Interval => TRUNC(sysdate,‘mi’) + 1/ (24*60)
每小时执行 Interval => TRUNC(sysdate,‘hh’) + 1/ (24)
.每天定时执行 例如:每天的凌晨1点执行 Interval => TRUNC(sysdate+ 1) +1/ (24)
每周定时执行 例如:每周一凌晨1点执行 Interval => TRUNC(next_day(sysdate,‘星期一’))+1/24
每月定时执行 例如:每月1日凌晨1点执行 Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24
每季度定时执行 例如每季度的第一天凌晨1点执行 Interval => TRUNC(ADD_MONTHS(SYSDATE,3),‘Q’) + 1/24
每半年定时执行 例如:每年7月1日和1月1日凌晨1点 Interval => ADD_MONTHS(trunc(sysdate,‘yyyy’),6)+1/24
.每年定时执行 例如:每年1月1日凌晨1点执行 Interval =>ADD_MONTHS(trunc(sysdate,‘yyyy’),12)+1/24
产生两个日期之间的随机日期
( SELECT TO_DATE ( TRUNC ( DBMS_RANDOM. VALUE ( TO_NUMBER ( TO_CHAR ( TO_DATE (‘20200401’, ‘yyyymmdd’), ‘J’ ) ), TO_NUMBER ( TO_CHAR ( TO_DATE (‘20200630’, ‘yyyymmdd’) + 1, ‘J’ ) ) ) ), ‘J’ ) + DBMS_RANDOM. VALUE (1, 3600) / 3600 prize_time FROM dual )