oracle常用函式(2)

2021-12-30 13:04:35 字數 4484 閱讀 6635

1、trim([ [ trim_character ]| trim_character} from ]trim_source) 函式

引數:leading 如果指定leading引數,oracle資料庫將去除任何等於trim_character的開頭字元。

引數:trailing 如果指定traling引數,oracle將去除任何等於trim_character的結尾字元。

引數:both 如果指定了both引數或者三個引數都未指定,oracle將去除任何等於trim_character的開頭和結尾字元。

引數:trim_character 如果沒有指定trim_character引數,預設去除的值為空格。

引數:trim_source 如果只指定修剪源(trim_source),oracle將去除trim_source的開頭和結尾的空格。

注意:a、trim函式返回乙個varchar2型別值。該值最大的長度等於trim_source的長度。

b、如果trim_source和trim_character有乙個為null,則trim函式返回null。

c、trim_character和trim_source都可以為以下任意一種資料型別:char, varchar2, nchar, nvarchar2, clob, or nclob。

d、返回值的型別與trim_source的資料型別一致。

select trim(leading 'b' from 'bboat is good') "test_trim" from dual;--oat is good

select trim(trailing 'd' from 'bboat is good') "test_trim" from dual;--bboat is goo

select trim(both 'd' from 'd--boat is handsome--d') from dual t;----boat is handsome--

select trim('d' from 'd--boat is handsome--d') from dual t;----boat is handsome--

select length(trim(leading from ' d--boat is handsome--d ')) from dual t;--23

select length(trim(' d--boat is handsome--d ')) from dual t;--22

select trim(trailing null from 'boat ') nulltrim from dual;

select trim(both 'b' from null) nulltrim from dual;2、abs函式

用途:返回指定值的絕對值

select abs(100),abs(-100) from dual;--100 100

select abs(null) from dual t;

select abs('') from dual t;3、ceil函式

用途:返回大於或等於給出數字的最小整數

select ceil(-7.09) from dual t;-- -7

select ceil(7.09) from dual t;-- 84、floor函式

用途:返回小於或等於給定數字的最大整數

select floor(-7.09) from dual;-- -8

select floor(7.09) from dual;-- 75、mod(a,b)函式

用途:返回乙個a除以b的餘數

select mod(2,3) from dual;--2

select mod(-2,3) from dual;-- -26、power(a,b)函式

用途:返回a的b次方函式

select power(2,3) from dual;7、round(number)函式

用途:四捨五入的方式取給定數字的整數值

select round(1.4) from dual;--1round(帶小時分秒的日期,引數)

引數:秒ss,精確到秒。

引數:分mi,到分,秒數30是分界線,相當於四捨五入的5,如果秒超過30,向前進1分鐘

引數:時hh,如果分超過30分鐘,向前進1個小時

引數:日dd, 如果小時超過12點,向前進1個小時

引數:月mm,16號是臨界,相當於四捨五入的5,如果超過16號,向前進1天

引數:年yy,超過7月,向前進1年

引數:day,星期三是分界線 大於星期三即顯示日期所在星期的下乙個星期日,小於等於則顯示所在星期的星期日

select round(to_date('2014-06-30','yyyy-mm-dd'),'yyyy') nian from dual;--2014/1/1

select round(to_date('2014-07-01','yyyy-mm-dd'), 'yyyy') nian from dual;--2015/1/1

select round(to_date('2014-06-16','yyyy-mm-dd'), 'mm') yue from dual;--2014/7/1

select round(to_date('2014-06-15','yyyy-mm-dd'), 'mm') yue from dual;--2014/6/1

select round(to_date('2014-07-15 12:00:01','yyyy-mm-dd hh24:mi:ss'), 'dd') ri from dual;--2014/7/16

select round(to_date('2014-07-15 11:59:59','yyyy-mm-dd hh24:mi:ss'), 'dd') ri from dual;--2014/7/15

select round(to_date('2014-07-30 10:30:01','yyyy-mm-dd hh24:mi:ss'), 'hh') shi from dual;--2014/7/30 11:00:00

select round(to_date('2014-07-30 10:29:59','yyyy-mm-dd hh24:mi:ss'), 'hh') shi from dual;--2014/7/30 10:00:00

select round(to_date('2014-07-15 13:30:01','yyyy-mm-dd hh24:mi:ss'), 'mi') fen from dual;--2014/7/15 13:30:00

select round(to_date('2014-07-15 14:30:31','yyyy-mm-dd hh24:mi:ss'), 'mi') fen from dual;--2014/7/15 1:31:00

select sysdate,round(sysdate-1, 'day'),round(sysdate, 'day'),round(sysdate+1,'day') from dual;8、add_months函式

用途:增加或減去指定月份

select add_months(to_date('2014-7-30','yyyy-mm-dd'),2) from dual;--2014/9/30

select add_months(to_date('2014-7-30','yyyy-mm-dd'),-2) from dual;--2014/5/309、last_day函式

用途:返回日期的最後一天

select to_char(last_day(sysdate-21),'yyyy.mm.dd') from dual;--2014.07.3110、months_between(date2,date1)函式

用途:返回date2-date1的月份差值

select months_between('16-9月-2014','16-7月-2014') mon_between from dual;--2

select months_between('01-9月-2014','15-7月-2014') mon_between from dual;--1.54838709677419

select months_between(to_date('2014-07-01','yyyy-mm-dd'),to_date('2014-09-01','yyyy-mm-dd')) mon_between from dual;--211、next_day(date,x)函式

用途:給出日期date和星期x之後計算下乙個星期x的日期

select next_day(sysdate,to_char(sysdate,'day')) next_day from dual;--2014/8/6 11:09:55

select to_char(sysdate,'day') from dual;--星期三12、sysdate函式

用途:用來給出當前系統的時間(注意是系統的時間,如果遠端呼叫伺服器上的資料庫,則是資料庫所在伺服器的時間)

select sysdate from dual;--2014/7/30 11:33:49

select systimestamp from dual;--30-7月 -14 11.33.56.450391 上午 +08:00

110個oracle常用函式總結 2

21.返回乙個數字反余弦值 sql select cosh 20 from dual cosh 20 22.exp 返回乙個數字e的n次方根 sql select exp 2 exp 1 from dual exp 2 exp 1 7.3890561 2.7182818 23.floor 對給定的數...

Oracle常用函式

一 row number over 資料甲 1 select column name column name,data type,2 row number over partition by column name order by column name row num 3 from test c...

Oracle常用函式

數學函式 1.絕對值 o select abs 1 value from dual 2.取整 大 o select ceil 1.001 value from dual 3.取整 小 o select floor 1.001 value from dual 4.取整 擷取 o select trun...