dbms_lock.sleep,日期格式

一.     dbms_lock.sleep

执行ORACLE_HOME/rdbms/admin/dbmslock.sql来创建dbms_lock;

在dba身份下grant execute on dbms_lock to username;

测试代码

a.

BEGIN

  DBMS_OUTPUT.put_line(TO_CHAR(SYSDATE,'yyyymmddhh24miss'));

  dbms_lock.sleep(10);

  dbms_output.put_line(TO_CHAR(SYSDATE,'yyyymmddhh24miss'));

  END;

b.

CREATE TABLE t(ID NUMBER,dat VARCHAR2(32));

 

DECLARE

BEGIN

  FOR I IN 1 .. 10 LOOP

    INSERT INTO T VALUES (I, TO_CHAR(SYSDATE, 'yyyymmddhh24miss'));

    COMMIT;

    DBMS_LOCK.SLEEP(5);

  END LOOP;

END;

二.日期格式

--a.因为sql中不区分大小写,mm被认为和MM一样,所以在格式转化张用mi代替mm来显示分钟

SELECT to_char(SYSDATE,'YYYY-MM-DD HH24:mi:SS') FROM DUAL;

--b.对日期的加减操作

SELECT SYSDATE-INTERVAL '7' hour FROM dual; --year,month,day,hour,minute

SELECT SYSDATE-3*INTERVAL '8' HOUR FROM dual;

--c.日期到字符

SELECT to_char(SYSDATE,'YYYYDDD HH24:MI:SS') FROM DUAL;

SELECT TO_CHAR(SYSDATE,'YYYY DAY') FROM DUAL;

SELECT to_char(SYSDATE,'IW-D') FROM DUAL;

日期格式参数含义说明 

D 一周中的星期几 

DAY 天的名字,使用空格填充到9个字符 

DD 月中的第几天 

DDD 年中的第几天 

DY 天的简写名 

IW ISO标准的年中的第几周 

IYYY ISO标准的四位年份 

YYYY 四位年份 

YYY,YY,Y 年份的最后三位,两位,一位 

HH 小时,按12小时计 

HH24 小时,按24小时计 

MI 分 

SS 秒 

MM 月 

Mon 月份的简写 

Month 月份的全名 

W 该月的第几个星期 

WW 年中的第几个星期

--d.日期截取

SELECT TRUNC(SYSDATE,'YEAR') FROM DUAL;

 

SELECT TRUNC(SYSDATE) FROM DUAL;

 

SELECT TRUNC(SYSDATE,'YYYY') FROM DUAL;

 

SELECT TO_CHAR(CURRENT_TIMESTAMP(5),'yyyymmdd hh24:mi:ssxFF') FROM dual;

 

SELECT TO_CHAR(CURRENT_TIMESTAMP(9),'yyyy-month-day hh24:mi:ssxFF') FROM dual;

 

SELECTdbms_utility.get_time FROM dual;

测试代码

--记录程序运行时间 DBMS_UTILITY.GET_TIME

DECLARE

  BEGIN_TIME NUMBER DEFAULTDBMS_UTILITY.GET_TIME;

  END_TIME  NUMBER;

BEGIN

  FOR I IN 1 .. 10 LOOP

    INSERT INTO T VALUES (I, SYSDATE);

    DBMS_LOCK.SLEEP(1);

  END LOOP;

  END_TIME :=DBMS_UTILITY.GET_TIME;

  DBMS_OUTPUT.PUT_LINE('开始时间:' || BEGIN_TIME || ';结束时间:' || END_TIME ||

                       ';时间差(s):' || (END_TIME - BEGIN_TIME) / 100 || ';');

END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值