Oracle中常見的日期時間操作

2021-08-01 13:03:16 字數 3402 閱讀 8446

1. 返回當前日期

sysdate

【功能】:返回當前日期。

【引數】:沒有引數,沒有括號

【返回】:日期

【示例】select sysdate hz from dual;

返回:2008-11-5

2. 返回指定月數後的日期

add_months(d1,n1)

【功能】:返回在日期d1基礎上再加n1個月後新的日期。

【引數】:d1,日期型,n1數字型

【返回】:日期

【示例】select sysdate,add_months(sysdate,3) hz from dual;

返回:2008-11-5,2009-2-5

3. 返回本月的最後一天

last_day(d1)

【功能】:返回日期d1所在月份最後一天的日期。

【引數】:d1,日期型

【返回】:日期

【示例】select sysdate,last_day(sysdate) hz from dual;

返回:2008-11-5,2008-11-30

4. 返回兩個日期間隔的月數

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;

返回:2008-11-5,34.16,-85.84

5.四捨五入後的期間第一天

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;

5. 返回下週一天的日期

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;

6. 提取日期中的資料

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 timestamp timestamp sysdate) 小時,

extract(day from sysdate ) 日,

extract(month from sysdate ) 月,

extract(year from sysdate ) 年

from dual;

6. oracle裡獲取乙個時間的年、季、月、周、日的函式

to_char(d1, c1 )

【功能】:日期/時間d1中,引數(c1)的值

【引數】:d1日期型(date)/日期時間型(timestamp),c1為字元型(引數)

【返回】:字元型

【示例】select  to_char(sysdate, 'yyyy' )  from dual; --年

select  to_char(sysdate, 'mm' )  from dual; --月

select  to_char(sysdate, 'dd' )  from dual; --日

select  to_char(sysdate,'q')  from dual; --季

select  to_char(sysdate,'iw')  from dual; --周--按日曆上的那種,每年有52或者53周

oracle 中常見日期查詢語句

1.查詢上月末的日期 select last day add months sysdate,1 from dual 2.查詢本週星期一的日期 select trunc sysdate,day 1 from dual 3.計算年初至今的天數 select ceil sysdate trunc sysd...

oracle常見單詞 Oracle中常見的英語單詞

fatal 重要的,致命的。常見於 root dido1 ps ef grep init.cssd root 2918 1 0 09 59 00 00 00 bin sh etc init.d init.cssd fatal dependencies 附屬的 diagnostic 診斷 常見於 ro...

Oracle中常見的操作

1.建立oracle表空間 2.刪除oracle表空間 示例 drop tablespace my space including contents and datafiles 3.檢視當前所有的表空間和表空間對應的資料檔案的位置 select from dba tablespaces 檢視當前所有...