您好,登錄后才能下訂單哦!
這篇文章主要介紹了Oracle中日期函數有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
SYSDATE函數沒有參數,它返回數據庫服務器當前的系統日期和時間。
select sysdate from dual;
Date1-Date2=Num1
可以從另一個日期中減去日志。這兩個日期項之間的差值表示它們之間的天數。可以將所有數字(包括小數)添加到日期項或者從日期項中減去。在該上下文中,數字表示天數。數字和日期項之間的和或者差值總是返回日期項。不允許相加、相乘或者相除兩個日期項。
select to_date('31-jan-01')-to_date('01-jan-01') from dual;
select sysdate + 1 from dual;
MONTHS_BETWEEN函數返回表示兩個強制的日期參數之間月數的數值。語法:MONTHS_BETWEEN(date1,date2)。計算date1和date2之間朋份的差值(每月31天)。如果date1在date2之前就反加負數。這兩個日期參數之間的差值可能由整數和小數部分組成。整數表示這兩個日期之間的朋數。小數部分表示計算年和月之間整數差值這后剩余的天數和時間,以31天的月份為基礎。如果要比較的日期的日組成部分相同或者是各自月份的最后一天,那么就返回沒有小數部分的整數。
select months_between(sysdate,sysdate-31) from dual;
select months_between('29-mar-2008','28-feb-2008') from dual;
select months_between('29-mar-2008','28-feb-2008')*31 from dual;
ADD_MONTHS函數返回日期項,這個日期項通過將指定月數添加到給定日期計算得出。
ADD_MONTHS函數有兩個強制參數。語法:ADD_MONTHS(start date,number of months)。在將指定的月數添加到start date之后,函數才計算目標日期。月數可能是負數,這樣返回的目標日期就早于起始日期。number of months可以是小數,但會忽略小數部分,而使用整數部分。
select add_months('07-APR-2009',1) from dual;
select add_months('07-APR-2009',2.5) from dual;
select add_months('07-APR-2009',-12) from dual;
NEXT_DAY函數返回的日期是星期內指定的日子下一次出現時的日期。
NEXT_DAY函數有兩個強制參數。語法:NEXT_DAY(start date,day of the week)。函數計算在start date之后day of the week參數下一次出現的日期。day of the week參數可以是字符值或者整數值。可接受的值由NLS_DATE_LANGUATE數據庫參數確定,但默認值至少是日子名稱的前三個字符或者整數值,其中1表示星期日,2表示星期一,以此類推。在任何情況下都應該指定表示星期幾的字符值。簡短名稱可以大于三個字符,例如星期日可以表示為sun、sund、sunda或者sunday。
select next_day('01-JAN-2009','tue') from dual;
select next_day('01-JAN-2009','WEDNE') from dual;
select next_day('01-JAN-2009',5) from dual;
LAST_DAY函數返回指定日子所屬的月的最后一天的日期。
LAST_DAY函數有一個強制參數。語法:LAST_DAY(start date)。該函數提取start date參數所屬的月,并計算該月最后一天的日期。
select LAST_DAY('01-JAN-2009') from dual;
日期ROUND函數依據指定的日期精度格式對值進行舍入運算。返回的值要么向上舍入要么向下舍入為最接近的日期精度格式。
日期ROUND函數使用一個強制參數和一個可選參數。語法:ROUND(source date[,date precision format])。source date參數表示任意日期項。date precision format參數指定舍入的精度,是可選的,如果沒有指定,默認的舍入精度是日。date precision formats 包括世紀(CC)、年(YYYY)、季度(Q)、月(MM)、星期(W)、日(DD)、時(HH)和分(MI)。
向上傳入到世紀相當于給當前世紀加1個世紀。如果日部分大于16,就會向上舍入到下一個月,否則就會向下舍入到當月的開頭。如果月在1和6之間,那么舍入到年就會返回當年開頭的日期,否則返回下一年開頭的日期。
select round(sysdate) day,round(sysdate,'w') week,round(sysdate,'month') month,round(sysdate,'year') year from dual;
select round(sysdate,'cc') cc,round(sysdate,'q') q,round(sysdate,'hh'),round(sysdate,'mi') min hour from dual;
日期TRUNC函數依據指定的日期精度格式對值進行截取運算。
日期TRUNC函數使用一個強制參數和一個可選參數。語法:TRUNC(source date[,date precision format])。source date參數表示任意日期項。date precision format 參數指定截取的精度,它是可選的,如果沒有指定,默認的截取精度是日。即source date的所有時間部分都設置為午夜(00:00:00)。月級別上的截取將source date的日期設置為該月的第一天。年級別上的截取返回當年開頭的日期。
select trunc(sysdate) day,trunc(sysdate,'w') week,trunc(sysdate,'month') month,trunc(sysdate,'year') year from dual;
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Oracle中日期函數有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。