網站首頁 健康小知識 母嬰教育 起名 運動知識 職場理財 情感生活 綠色生活 遊戲數碼 美容 特色美食 愛好
當前位置:酷知知識幫 > 遊戲數碼 > 電腦

Oracle函數大全之日期函數

欄目: 電腦 / 發佈於: / 人氣:3.02W

Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關係數據庫管理系統。到目前仍在數據庫市場上佔有主要份額。勞倫斯·埃裏森和他的朋友,之前的同事Bob Miner和Ed Oates在1977年建立了軟件開發實驗室諮詢公司(SDL,Software Development Laboratories)。

操作方法

(01)sysdate【功能】:返回當前日期。【參數】:沒有參數,沒有括號【返回】:日期【示例】select sysdate  hz from dual;返回:2014-06-29

Oracle函數大全之日期函數

(02)add_months(d1,n1)【功能】:返回在日期d1基礎上再加n1個月後新的日期。【參數】:d1,日期型,n1數字型【返回】:日期【示例】select sysdate,add_months(sysdate,3)  hz from dual;返回:2014-06-29,2014-09-29

Oracle函數大全之日期函數 第2張

(03)last_day(d1)【功能】:返回日期d1所在月份最後一天的日期。【參數】:d1,日期型【返回】:日期【示例】select sysdate,last_day(sysdate)  hz from dual;返回:2014-06-29,2014-06-30

Oracle函數大全之日期函數 第3張

(04)months_between(d1,d2)【功能】:返回日期d1到日期d2之間的月數。【參數】:d1,d2 日期型【返回】:數字如果d1>d2,則返回正數如果d1<d2,則返回負數【示例】select sysdate,months_between(sysdate,to_date('2006-01-01','YYYY-MM-DD')),months_between(sysdate,to_date('2016-01-01','YYYY-MM-DD')) from dual;返回:2014-06-29,101.92,-18.07

(05)NEW_TIME(dt1,c1,c2)【功能】:給出時間dt1在c1時區對應c2時區的日期和時間【參數】:dt1,d2 日期型【返回】:日期時間【參數】:c1,c2對應的 時區及其簡寫大西洋標準時間:AST或ADT阿拉斯加_夏威夷時間:HST或HDT英國夏令時:BST或BDT美國山區時間:MST或MDT美國中央時區:CST或CDT新大陸標準時間:NST美國東部時間:EST或EDT太平洋標準時間:PST或PDT格林威治標準時間:GMTYukou標準時間:YST或YDT【示例】 select to_char(sysdate,' hh24:mi:ss') bj_time,to_char(new_time(sysdate,'PDT','GMT'),' hh24:mi:ss') los_angles from dual;返回: 2014.06.29 16:33:01 2014.06.29 23:33:01【示例】 select sysdate bj_time,new_time(sysdate,'PDT','GMT') los_angles from dual;返回:  2014-06-29  2014-06-29

Oracle函數大全之日期函數 第4張

(06)round(d1[,c1])【功能】:給出日期d1按期間(參數c1)四捨五入後的期間的第一天日期(與數值四捨五入意思相近)【參數】:d1日期型,c1為字符型(參數),c1默認為j(即最近0點日期)【參數表】:c1對應的參數表:最近0點日期: 取消參數c1或j最近的星期日:day或dy或d最近月初日期:month或mon或mm或rm最近季日期:q最近年初日期:syear或year或yyyy或yyy或yy或y(多個y表示精度)最近世紀初日期:cc或scc【返回】:日期【示例】select sysdate 當時日期,round(sysdate) 最近0點日期,round(sysdate,'day') 最近星期日,round(sysdate,'month') 最近月初,round(sysdate,'q') 最近季初日期, round(sysdate,'year') 最近年初日期 from dual;

(07)trunc(d1[,c1])【功能】:返回日期d1所在期間(參數c1)的第一天日期【參數】:d1日期型,c1為字符型(參數),c1默認為j(即當前日期)【參數表】:c1對應的參數表:最近0點日期: 取消參數c1或j最近的星期日:day或dy或d (每週順序:日,一,二,三,四,五,六)最近月初日期:month或mon或mm或rm最近季日期:q最近年初日期:syear或year或yyyy或yyy或yy或y(多個y表示精度)最近世紀初日期:cc或scc【返回】:日期【示例】select sysdate 當時日期,trunc(sysdate) 今天日期,trunc(sysdate,'day') 本週星期日,trunc(sysdate,'month') 本月初,trunc(sysdate,'q') 本季初日期, trunc(sysdate,'year') 本年初日期 from dual;

Oracle函數大全之日期函數 第5張

(08)next_day(d1[,c1])【功能】:返回日期d1在下週,星期幾(參數c1)的日期【參數】:d1日期型,c1為字符型(參數),c1默認為j(即當前日期)【參數表】:c1對應:星期一,星期二,星期三……星期日【返回】:日期【示例】select sysdate 當時日期,next_day(sysdate,'星期一') 下週星期一,next_day(sysdate,'星期二') 下週星期二,next_day(sysdate,'星期三') 下週星期三,next_day(sysdate,'星期四') 下週星期四,next_day(sysdate,'星期五') 下週星期五,next_day(sysdate,'星期六') 下週星期六,next_day(sysdate,'星期日') 下週星期日 from dual;

Oracle函數大全之日期函數 第6張

(09)extract(c1 from d1)【功能】:日期/時間d1中,參數(c1)的值【參數】:d1日期型(date)/日期時間型(timestamp),c1為字符型(參數)【參數表】:c1對應的參數表詳見示例【返回】:字符【示例】select extract(hour from timestamp '2001-2-16 2:38:40 ' ) 小時,extract(minute from timestamp '2001-2-16 2:38:40 ' ) 分鐘,extract(second from timestamp '2001-2-16 2:38:40 ' ) 秒,extract(DAY from timestamp '2001-2-16 2:38:40 ' ) 日,extract(MONTH from timestamp '2001-2-16 2:38:40 ' ) 月,extract(YEAR from timestamp '2001-2-16 2:38:40 ' ) 年 from dual;select extract (YEAR from date '2001-2-16' ) from dual;select sysdate 當前日期,extract(hour from systimestamp) 小時,extract(DAY from sysdate ) 日,extract(MONTH from sysdate ) 月,extract(YEAR from sysdate ) 年 from dual;

Oracle函數大全之日期函數 第7張
Oracle函數大全之日期函數 第8張
Oracle函數大全之日期函數 第9張

(10)localtimestamp【功能】:返回會話中的日期和時間【參數】:沒有參數,沒有括號【返回】:日期【示例】select localtimestamp from dual;

Oracle函數大全之日期函數 第10張

(11)current_timestamp【功能】:以timestamp with time zone數據類型返回當前會話時區中的當前日期【參數】:沒有參數,沒有括號【返回】:日期【示例】select current_timestamp from dual;

Oracle函數大全之日期函數 第11張

(12)current_date【功能】:返回當前會話時區中的當前日期【參數】:沒有參數,沒有括號【返回】:日期【示例】select current_date from dual;

Oracle函數大全之日期函數 第12張

(13)dbtimezone【功能】:返回時區【參數】:沒有參數,沒有括號【返回】:字符型【示例】select dbtimezone from dual;

Oracle函數大全之日期函數 第13張

(14)SESSIONTIMEZONE【功能】:返回會話時區【參數】:沒有參數,沒有括號【返回】:字符型【示例】select dbtimezone,SESSIONTIMEZONE from dual;

Oracle函數大全之日期函數 第14張

(15)INTERVAL c1 set1【功能】:變動日期時間數值【參數】:c1為數字字符串或日期時間字符串,set1為日期參數【參數表】:set1具體參照示例【返回】:日期時間格式的數值,前面多個+號以天或天更小單位時可用數值表達式借用,如1表示1天,1/24表示1小時,1/24/60表示1分鐘【示例】selecttrunc(sysdate)+(interval '1' second), --加1秒(1/24/60/60)trunc(sysdate)+(interval '1' minute), --加1分鐘(1/24/60)trunc(sysdate)+(interval '1' hour), --加1小時(1/24)trunc(sysdate)+(INTERVAL '1' DAY),  --加1天(1)trunc(sysdate)+(INTERVAL '1' MONTH), --加1月trunc(sysdate)+(INTERVAL '1' YEAR), --加1年trunc(sysdate)+(interval '01:02:03' hour to second), --加指定小時到秒trunc(sysdate)+(interval '01:02' minute to second), --加指定分鐘到秒trunc(sysdate)+(interval '01:02' hour to minute), --加指定小時到分鐘trunc(sysdate)+(interval '2 01:02' day to minute) --加指定天數到分鐘from dual;

Oracle函數大全之日期函數 第15張

特別提示

默認的數據庫日期格式不一樣可能導致查詢結果的日期格式一不樣

如個別有sql出現其它查詢結果情況,可能是因為數據庫版本問題,本人使用Oracle 12c