===================单行函数==========================
1? 字符函数
字符大小写转换函数?
????????? 函数?????????????? 功能????????????????????? 用法?????????????????????????????????????? 返回结果
? lower()???????????? 转换为小写????????? lower('John? Smith')?????????????????????? john? smith
?upper()??????????????转换为大写????????? upper('John? Smith')???????????????????? JOHN? SMITH
initcap()????????????? 单词首字母大写??? initcap('JOHN? smith')??????????????????? John? Smith? 每个单词首字母都改 空格区分一个单词
字符处理
? 函数????????????? 功能??????????????????? 用法?????????????????????????????????????????????????????????? 结果
concat()??????????字符串连接????????? concat('Hello','World')????????????????????????????? HelloWorld?? 也可以连接列
substr()????????? 截取子串???????????? substr('HelloWorld',4,3)????????????????????????? low?? 从1开始数
length()????????? 返回字符串长度????length('Hello World')???????????????????????????????11
instr()???????????? 定位子串???????????? instr('Hello World','or')?????????????????????????????8
lpad()???????????? 左侧填充???????????? lpad('Smith',10,'*')????????????????????????????????? *****Smith??????????????????????????????
rpad()???????????? 右侧填充???????????? rpad('Smith',10,'*')?????????????????????????????????Smith*****
trim()????????????? 过滤首尾空格????? trim('?????Mr? Smith??? ')????????????????????????????? Mr? Smith
replace()??????? 替换?????? replace('Mr Smith and?Mr White','Mr','Mrs')?? Mrs Smith and Mrs White
?
数值函数
?
函数?????????? 功能????????????????????? 用法??????????????????????????????? 返回结果
abs()???????? 取绝对值?????????????? abs(-8.45)??????????????????????
round()???? 四舍五入????????????????round(3.1415)??????????????? 3???? 是会四舍五入的
?????????????????????????????????????????????round(3.1415,3)???????????? 3.142
???????????????????????????????????????????? round(314.15,-2)??????????? 300
trunc()????? 截断?????????????????????? trunc(3.1415,3)????????????? 3.141 截断
ceil()???????? 向上取整?????????????????ceil(3.14)??????????????????????? ?4
floor()?????? 像下取整???????????????? floor(3.14)?????????????????????? 3
sign()??????? 判断数值正负?????????? sign(-3.14)???????????????????? -1 零返回0 整数返回1
sin()????????? 三角函数???????????????? sin(3.14)???????????????????????? .001592653
power()??? 幂运算???????????????????? power(4.5,2)????????????????
sqrt()??????? 开平方??????????????????? sqrt(9)??????????????????????????????3
mod()??????? 取模运算??????????????? mod(10,3)???????????????????????? 1? 取余 可对小数取模
exp()???????? 基数为e的幂运算????? exp(1)????????????????????????????? 2.71828183
log()??????????对数运算?????????????????log(4,16.0)?????????????????????? 4?? 计算以四为底16的对数
ln()??????????? 自然对数运算?????????? ln(7)???????????????????????????????? 1.94591015
?
?日期类型
?oracle 内部 存储格式 世纪,年,月,日,小时,分,秒
?缺省格式为? dd-mon-yy
可使用sysdate函数取当前系统时间
日期型数据的算术运算
日期型数据可以直接加或减一个数值,结果仍为日期。
两个日期型数据可以相减,结果为两者相差了多少天
函数??????????????????????????? ? 功能????????????????????????????????????????????????????? ????? 用法?
?
add_months(x,y)?????? 计算在日期x基础上增加y个月后的日期????????????? add_months(sysdate,2)
?
last_day(x)???????????????? 返回当前日期x当月最后一天的日期????????????????? last_day(sysdate)
?
months_between(x,y)? 返回日期x和y之间相差的月数???????????????????????months_between(sysdate,hiredate)?
?
round(x,y)?????????????????? 讲日期x四舍五入到y所指定的日期单位????????????round(sysdate,'month')? 上半个月从此月1
????????????????????????????????? (月或年) 的第一天????????????????????????????????????round(sysdate,'year')???? 号算下半个月从次
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 月开始算
trunc(x,y)??????????????????? 讲日期x截断到y所指定的日期单位(月???????????? trunc(sysdate,'month')
??????????????????????????????????? 或年)的第一天????????????????????????????????????????? trunc(sysdate,'year')
?
next_day(x,y)??????????? 计算指定日期x后的第一个星期几????????????????????? next_day(sysdate,'星期二')
????????????????????????????????? (由参数y指定)对应的日期
?
?
?转换函数?
?
字符串? 日期?? 数字?? 相互转换??
?
???????????????????????????to_number()?????????????????to_date?()??????????????????????????????????????????????????????????????????????????????????
???????????????????????????/??????<?--??????\????????????????/???--->????\?????????????????????????????????
?????????????????????????/????????????????????????\??????????/????????????? ??\????????????
?????????????? 数值型??????????????????????????????字符串??????????????? date型????????????????????????????????????????????????
????????????????????????\????????????????????????/???? ???????\???????<--??/????????????????????????
???????????????????????????\?????-->?????????/???????????????\?????????????/????????????????????
????????????????????????????? to_char()??????????????????? tochar()
?
?
常用日期格式符 =========
格式符???????????????????????? 说明?????????????????????? ?举例
?yyyy???????????????????????? ?年份?????????????????????? 2008
mm??????????????????????????? 用数字显示月份???????? 02
dd????????????????????????????? 当月的第几天???????????28
day??????????????????????????? 星期几???????????????????? 星期五
am/pm?????????????????????? 显示上午/下午????????? 上午
hh/hh12/hh24?????????? 小时?????????????????????? 2:30?? 14:30
mi????????????????????????????? 分钟????????????????????????????? 30
ss??????????????????????????????秒钟???????????????????????? 46
说明 出此之外 日期模式字符串还可以直接出现 _? :? ;? /? 如果要显示其他文本字符串则需要用双引号
括起来;也可以用模式字符串的开头使用"fm"标记以去掉数字前面的零。例如? 'yyyy-mm"月"-dd'
?
数字.字符串 格式符 =========
?
格式符???????????? 说明
9????????????????????表示一位数? 高位如果没有,不显示
0??????????????????? 表示一位数,强制显示0? 高位如果没有值 强制显示0
$??????????????????? 放置一个美元符$
L??????????????????? 放置一个本地货币符? 看机器环境
.???????????????????? 小数点
,????????????????????千位指示符
=============================补充nvl()==========================?
?NVL(eExpression1, eExpression2) 1为空 返回2值 防止空值出现
trim('h' from 'helloword') 输出结果 ellword 去除前后小 'h'?
?
?
?
?
?
?
?
?
?
?
?
?
?