Oracle 常用的單行函數
數值函數:
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 常用的單行函數