1. 程式人生 > >Oracle 常用的單行函數

Oracle 常用的單行函數

相同 decode sele 數值函數 負數 spa 數字 日期函數 char

數值函數:

1.round:返回四舍五入後的值

round(數字,參數) 參數不寫默認為0

後面的參數指定了返回值的精度,或者說是從小數點第幾位開始四舍五入,如果不帶後面的參數,則默認為四舍五入取整數。精度截取以小數點為分界線,正數表示從以左到右截取並四舍五入,負數表示從右往左截取並四舍五入,精度值可以為小數。

select round(1992.54, 1) from dual;

技術分享圖片

select round(1992.54) from dual;

技術分享圖片

select round(1992.54, -1) from dual;

技術分享圖片

2.trunc:返回截取後的值(不會四舍五入)

trunc(數字, 參數) 參數不寫默認為0 ,精度截取也是以小數點為分界線,正數為從左到右,負數表示從右到左,精度值可以為小數

select trunc(1992.92) from dual;

技術分享圖片

3.mod:返回余數

mod(數字,參數) 數字除以參數,參數不能不寫

select mod(2001, 5) from dual;

技術分享圖片

日期函數

日期操作公式

日期 + 數字 = n天之後的日期

日期 - 數字 = n天之前的日期

日期 - 日期 = 日期之間有多少天

1.sysdate:獲取當前時間

select sysdate from dual;

技術分享圖片

select sysdate + 1 from dual;

技術分享圖片

select sysdate - 1 from dual;

技術分享圖片

select sysdate - (sysdate -1) from dual;

技術分享圖片

2.add_months:返回n個月後的日期

add_months(日期,參數) 參數為增加的月份
select add_months(sysdate, 1) from dual;

技術分享圖片

3.months_between:返回兩個日期之間相差的月份

months_between(日期, 日期)

select months_between(sysdate, (sysdate + 30)) from dual;

技術分享圖片

4.last_day:返回日期所在的最後一天

select last_day(sysdate) from dual;

技術分享圖片

5.next_day:返回日期在下周,星期X的日期

next_day(日期, 參數) 參數必須有且 1 <= 參數 <= 7

select next_day(sysdate, 1) from dual;

技術分享圖片

轉換函數

1.to_char:將其他格式轉換為字符串格式

轉換日期是可指定返回值:yyyy年MM月dd日hh小時mi分鐘ss秒

select to_char(sysdate, ‘yyyy‘) from dual;

技術分享圖片

2.to_date:將其他格式轉換為日期格式

to_date(數字/字符串, 參數) 參數為指定日期格式,數字和字符串格式要與指定日期格式對應

select to_date(20171120, ‘yyyyMMdd‘) from dual;

技術分享圖片

3.to_number:將其他格式轉換為數字格式

to_num(字符串)

使用to_number的時候,一定要確保所轉換字段是可轉換為數字的

select to_number(‘123‘) from dual;

技術分享圖片

其他函數

1.nvl:空值替換,如果傳入的數據時null,則使用默認值如果不是null,則使用原始數據

nvl(數據, 替換值)

2.decode:條件取值,設置的內容會與每一個比較內容進行比較如果內容相同則使用顯示內容進行輸出如果都不行同使用默認內容輸出

decode(| 字符串 | 數值,比較內容1,顯示內容1, 比較內容2,顯示內容2,…[,默認顯示內容])

Oracle 常用的單行函數