Oracle數據庫數值、日期函數的學習
一、數值函數的學習
1)number(p,s)、number(p)、number(*,s),p的值為1-38之間。
2)數值類型的兼容性
--:numeric(p,s) 相當於number(p,s)
--:decimal(p,s)或dec(p,s) 相當於number(p,s)
--:integer或int(不能指定位數)相當於number(38)
--:smallint相當於number(38)
--:float相當於number
--:double precision相當於number
--:real相當於number
3)四舍五入函數:round(p1,n)對p1進行四舍五入,n表示保留小數點的位數,不寫默認為0,可以為負,表示保留到小數點前n位。
eg:對數字3.14進行四舍五入,保留兩位小數
select round(3.14,2) from dual;
4)數字截取函數trunc(p1,n)對p1進行截取,保留小數點後n位,n為負數保留到小數點前n為。
eg:對數字3.14進行截取,保留小數點後兩位
select trunc(3.14,2) from dual;
5)取余函數mod(m,n)表示m對n做除法運算,取余數。
eg:計算100對3取余
select mod(100,3) from dual;
6)取整函數
--:向上取整ceil(m)表示取大於等於m的最小整數
--:向下取整floor(m)表示取小於等關於m的最大整數
eg:分別對-3.4進行向上和向下取整
select ceil(-3.14),ceil(4.5) from dual;
二、日期函數的學習
1)
--:to_char(p1,p2) 表示將日期p1按照p2的格式轉換成字符串類型,如果格式中有漢字就要用雙引號引起來。
--:to_date(p1,p2) 表示字符串p1按照p2的格式轉成日期類型。
2)last_day(p1) 查看p1月份中的最後一天的日期,p1為date類型。
eg:查詢出生年月日的那個月的最後一天
select last_day(to_date(‘1997-3-6‘,‘yyyy-mm-dd‘)) from dual;
3)add_month(p1,n) 在日期p1的基礎上增加n個月返回n個月後的日期,n可以為小數,會截取到整數增加 n也可以為負,減n個月。
eg:推算2018年4月15日的一個月後的日期
select add_month(to_date(‘2018-4-15‘,‘yyyy-mm-dd‘),1) from dual;
4)month_between(p1,p2) 計算兩個日期p1和p2之間相差的月份,會存在小數情況,計算p1-p2。
eg:計算當前系統時間和出生年月日相差的月份,保留一位小數。
select round(month_between(sysdate,to_date(‘1997-3-6‘,‘yyyy-mm-dd‘)),1) from dual;
5)next_day(date,num) 表示查看參數date的下一個周幾的日期,date表示某一日期,num:1~7。
eg:查看當前系統時間的下一個周日時間
select next_day(sysdate,1) from dual;
6)
--:least(p1,p2,p3.....)多個參數比較顯示最小的數據。
--:greatest(p1,p2,p3....)多個參數比較顯示最大的數據。
要求:參數為同一類型,或者默認轉換成第一個參數的類型,字符串比較是比較字符的ascii碼。
eg:統計3,2,1,4,5中的最大值
select greatest(3,2,1,4,5) from dual;
7)extract(p1 from p2) 表示從日期p2中提取分量p1,日期的分量:year、month、day、hour、minute、second,日期類型關鍵字:sysdate和systimestamp。
eg:分別從sysdate和systimestamp中提取分量年
select extract(year from sysdate),extract(yaer from systimestamp) from dual;
Oracle數據庫數值、日期函數的學習