1. 程式人生 > >Oracle數據庫數值、日期函數的學習

Oracle數據庫數值、日期函數的學習

ceil real 日期類型 3.1 strong 漢字 int ber 比較

一、數值函數的學習

  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數據庫數值、日期函數的學習