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);

參考列表

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