-
Oracle
常用函数总结
返回字符串的长度
;
SQL>
name,length(name),addr,
length(addr),sal,length(to_char(sal))
_tst;
NAME
LENGTH(NAME)
ADDR
LENGTH(ADDR)
SAL
LENGTH(TO_CHAR(SAL))
------
------------ ---------------- ------------
--------- --------------------
select
from
高乾竞
3
北京市海锭区
6
9999.99
7
返回字符
串
,
并将所有的字符小写
SQL> select lower('AaBbCcDd')AaBbCcDd
from dual;
AABBCCDD
--------
aabbccdd
返回字符串
,
并将所有的字符大写
SQL>
select upper('AaBbCcDd') upper from
dual;
UPPER
--------
AABBCCDD
和
LPAD
(
粘贴字符
)
RPAD
在列的右边粘贴字符
LPAD
在列的左边粘贴字符
SQL> select
lpad(rpad('gao',10,'*'),17,'*')from
dual;
LPAD(RPAD('GAO',1
-----------------
*******gao*******
不够字符则用
*
来填满
和
RTRIM
LTRIM
删除左边出现的字符串
RTRIM
删除右边出现的字符串
SQL> select ltrim(rtrim('
gao qian jing
',' '),' ') from
dual;
LTRIM(RTRIM('
-------------
gao
qian jing
(string,start,count)
取子字符串
,
从
start<
/p>
开始
,
取
cou
nt
个
SQL> select
substr('',3,8) from dual;
SUBSTR('
--------
08888888
E('string','s1','s2')
string
希望被替换的字符或变量
s1
被替换的字符串
s2
要替换的字符串
SQL>
select replace('he love you','he','i') from
dual;
REPLACE('H
----------
i love
you
X
返回一个与给定的字符串读音相同的字符串
SQL> create table table1(xm
varchar(8));
SQL> insert
into table1 values('weather');
SQL> insert into table1
values('wether');
SQL>
insert into table1 values('gao');
SQL> select xm from table1 where
soundex(xm)=soundex('weather');
XM
--------
weather
wether
('s' from 'string')
LEADING
剪掉前面的字符
TRAILING
剪掉后面的字符
< br>如果不指定
,
默认为空格符
返回指定值的绝对值
SQL>
select abs(100),abs(-100) from dual;
ABS(100)
ABS(-100)
---------
---------
100
100
给出反余弦的值
SQL>
select acos(-1) from dual;
ACOS(-1)
---------
3.1415927
给出反正弦的值
SQL>
select asin(0.5) from dual;
ASIN(0.5)
---------
.52359878
返回一个数字的反正切值
SQL>
select atan(1) from dual;
ATAN(1)
---------
.78539816
返回大于或等于给出数字的最小整数
SQL> select ceil(3.1415927) from
dual;
CEIL(3.1415927)
---------------
4
返回一个给定数字的余弦
SQL>
select cos(-3.1415927) from dual;
COS(-3.1415927)
---------------
-1
返回一个数字反余弦值
SQL>
select cosh(20) from dual;
COSH(20)
---------
242582598
返回一个数字
e
的
n
次方根
SQL> select exp(2),exp(1) from
dual;
EXP(2)
EXP(1)
---------
---------
7.3890561
2.7182818
返回
n1<
/p>
的
n2
次方根
SQL> select power(2,10),power(3,3) from
dual;
POWER(2,10)
POWER(3,3)
-----------
----------
1024
27
和
TRUNC
按照指定的精度进行舍入
SQL>
select
round(55.5),round(-55
.4),trunc(55.5),trunc(-55.5)
from
dual;
ROUND(55.5)
ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)
----------- ------------ -----------
------------
56
-55
55
-55
取数字
n<
/p>
的符号
,
大于
0
返回
1,
小于
0
返回
-1,
等于
0
返回
0
SQL> select
sign(123),sign(-100),sign(0) from dual;
SIGN(123) SIGN(-100)
SIGN(0)
--------- ----------
---------
1
-1
0
返回一个数字的正弦值
SQL>
select sin(1.57079) from dual;
SIN(1.57079)
------------
1
返回双曲正弦的值
SQL>
select sin(20),sinh(20) from dual;
SIN(20)
SINH(20)
--------- ---------
.91294525 242582598
返回数字
n
的根
SQL> select sqrt(64),sqrt(10) from
dual;
SQRT(64)
SQRT(10)
--------- ---------
8 3.1622777
返回数字的正切值
SQL>
select tan(20),tan(10) from dual;
TAN(20)
TAN(10)
---------
---------
2.2371609
.64836083
返回数字
n
的双曲正切值
SQL>
select tanh(20),tan(20) from dual;
TANH(20)
TAN(20)
--------- ---------
1 2.2371609
按照指定的精度截取一个数
SQL>
select trunc(124.1666,-2)
trunc1,trunc(124.16666,2) from dual;
TRUNC1 TRUNC(124.16666,2)
--------- ------------------
100
124.16
_MONTHS
增加或减去月份
select
p>
to_char(add_months(to_date('199912','yyyy
mm'),2),'yyyymm')
from dual;
TO_CHA
------
200002
SQL>
to_char(add_months(to_date('199912','yyyymm' ),-2),'yyyymm')
dual;
TO_CHA
------
199910
select
from
_DA
Y
返回日期的最后一天
SQL>
from dual;
TO_CHAR(SY TO_CHAR((S
---------- ----------
2004.05.09 2004.05.10
SQL> select last_day(sysdate) from
dual;
LAST_DA
Y(S
----------
31-5
月
-04
select
to_char(sysdate,''),t
o_char((sysdate)+1,'')
_BETWEEN(date2,date1)
给出
date2-date1
的月份
SQL>
select
months_between('19-12
月
-1999'
,'19-3
月
-1999')
mon_between from dual;
MON_BETWEEN
-----------
9
SQL
>selectmonths_between(to_date('2000.05.20',''),to_
da
te('2005.05.20','')) mon_betw from
dual;
MON_BETW
---------
-60
_TIME(date,'this','that')
p>
给出在
this
时区
=other
时区的日期和时间
SQL>
select
to_char(sysdate,'
hh24:mi:ss')
bj_time,to_char(new_time
2
(sysdate,'PDT','GMT'),' hh24:mi:ss')
los_angles from
dual;
BJ_TIME
LOS_ANGLES
-------------------
-------------------
2004.05.09 11:05:32 2004.05.09
18:05:32
_DAY(date,'day')
给出日期
date
和星期
x
之后计算下一个星期的日期(离这个星期最近的星
期)
SQL> select next_day('18-5
月
-2001','
星期五
')
next_day from dual;
NEXT_DA
Y
----------
25-5
月
-01
E
用来得到系统的当前日期
SQL>
select to_char(sysdate,'dd-mm-yyyy day') from
dual;
TO_CHAR(SYSDATE,'
-----------------
-
-
-
-
-
-
-
-
-
上一篇:oracle+110个常用函数
下一篇:英语情景交际专项训练