plsql 时间处理

时间类型

plsql提供了两种和时间相关的数据类型:datetime 和 intertime

时间相关的函数、操作

  1. 获取当前时间
select sysdate from dual; --output 2017/2/9 12:20:53 (数据库的lang为ZHS)
select trunc(sysdate) from dual; --2017/2/9
  1. 与字符串之间的格式转换
select tochar(sysdate,'yyyy-mm-dd hh24:mi:ss') from daul; -- 2017-02-09 12:24:38
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual; -- 2017-02-09 12:24:57
select to_char(sysdate,'yyyy-mm-dd hh:mi:ss ww d') from dual; -- 2017-02-09 12:38:57 06 5 表示当前年的第6周,第5天。 更多的FORMAT可参考官网手册
  1. 与时间相关的函数
select add_months(sysdate,12) from dual; --2018/2/9 12:27:43
select last_day(sysdate) from dual; -- 2017/2/28 12:28:33
select months_between(sysdate, sysdate - 31) from dual; --31
select next_day(sysdate,'星期一')from dual; --2017/2/13 12:36:15 用于计算X时间后第一个星期Y的时间。Y是一个字符串,表示用当前会话语言表示的一周中某一天的全称(如星期一、星期二等),也可以是数值。英语环境为monday tuesday wednesday thursday friday saturday sunday ;
select round(to_number(sysdate - (sysdate-1))*24*60)  from dual; --1440 分钟 默认按照天数来计算
  1. 时间戳
    时间戳是date类型的扩展,比date记录更精确的时间(更多的秒位).Oracle的timestamp的默认时间精度是微秒(p=6),而Oracle能记录到(p=9)也就是纳秒。可用于数据库回滚、对时间要求比较高的地方。
select current_timestamp from dual; -- 09-2月 -17 12.45.22.716437 下午 +08:00 当前会话的
select systimestamp from dual; --09-2月 -17 12.46.58.476939 下午 +08:00  当前系统的
flashback table students to timestamp  to_timestamp ('2018/2/9 12:27:43','mm/dd/yyyy hh24:mi:ss');  
  1. job计划
DBMS_JOB.SUBMIT( 
   job       OUT    BINARY_INTEGER, --job号
   what      IN     VARCHAR2, 
   NEXT_DATE IN     DATE DEFAULTSYSDATE, 
   interval  IN     VARCHAR2 DEFAULT 'NULL',
   no_parse  IN     BOOLEAN DEFAULT FALSE,
   instance  IN     BINARY_INTEGER DEFAULT ANY_INSTANCE,
   force     IN     BOOLEAN DEFAULT FALSE);

参考列表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章