oracle学习(使用了PL/SQL)——3

今天主要是写一些常用的函数,就当复习一遍,偶尔还能看一下
1.字符函数

函数名 函数功能 实例
ASCII 返回指定的字符(第一个字符)对应的十进制数 select ascii(‘hello’) from dual;
CHR 参数为整数,表示某个字符的Unicode码,返回对应的字符 CHR(50403)
INITCAP 返回字符串并将字符串的第一个字母变为大写,其余变为小写 INITCAP(‘hello’)
INSTR 在一个字符串中搜索指定的字符,返回发现指定的字符的位置 INSTR(‘hello’,’e’,1,1)[参数3:查找起始位置。参数4:第几次出现。3,4都可选]
LENGTH 返回字符串的长度 LENGTH(‘hello’)
LOWER 返回字符串。并将所有字符小写 LOWER(‘HELLO’)
UPPER 返回字符串。并将所有字符大写 UPPER(‘hello’)
RPAD 在列的右边粘贴字符 RPAD(‘hello’,10,’汪汪v’)[参数1:原字符串;参数2:补充后达到的个数;参数3:补充的字符]
LPAD 在列的左边边粘贴字符 LPAD(‘hello’,10,’汪汪v’)
LTRIM 删除字符左面的字符串 LTRIM(‘hello’,’h’)[从最左边开始]
RTRIM 删除字符右面的字符串 RTRIM(‘hello’,’lo’)[结果:he]
TRIM 删除字符串两边的空格,如删除字符串两边的空格 TRIM(’ hello ‘)
SUBSTR 取子字符串 SUBSTR(‘hello world’,3,5)[参数3可选]
REPLACE 将一个字符串中的子字符串替换成其他的字符串 REPLACE(‘hello world’,’l’,’www’)
CONCAT 连接两个字串 concat(‘3071’,’88888’)
INITCAP 首字符大写 initvap(‘hello world’)

2、日期函数

函数名 函数功能 实例
HH 一天的小时数 (01-12)
HH12 一天的小时数 (01-12)
HH24一天的小时数 (00-23)
MI 分钟 (00-59)
SS 秒 (00-59)
MS 毫秒 (000-999)
US 微秒 (000000-999999)
SSSS 午夜后的秒 (0-86399)
AM 或 A.M. 或 PM 或 P.M. 正午标识(大写)
am 或 a.m. 或 pm 或 p.m. 正午标识(小写)
Y,YYY 带逗号的年(4 和更多位)
YYYY 年(4和更多位)
YYY 年的后三位
YY 年的后两位
Y 年的最后一位
SYSDATE 用来得到系统的当前日期 select sysdate from dual;
ADD_MONTHS 增加或减去月份 add_months(sysdate,2)
LAST_DAY 返回日期的最后一天 LAST_DAY(to_date(‘2017/08’,’yyyy-mm’))[结果:2017/8/31]
MONTHS_BETWEEN(date2,date1) 给出date2和date1相差的月份
NEXT_DAY(date,’day’) 给出日期date和星期x之后计算下一个星期的日期 next_day(sysdate,’星期三’)[结果:2017/11/1 22:46:10]
trunc(date,fmt) 按照给出的要求将日期截断,如果fmt=‘mi’表示保留分,截断秒 trunc(sysdate,’hh’)
MONTHS_BETWEEN 显示日期相差的月数 MONTHS_BETWEEN(sysdate,add_months(sysdate,2))[结果:-2]

3.转换函数

函数名 返回类型 函数功能
to_char(timestamp,text) text 把timestamp转换成string
to_char(int,text) text 把 int4/int8 转换成string
to_char(doubleprecision, text) text 把 real/double precision 转换成string
to_char(numeric,text) text 把 numeric转换成 string
to_date(text,text) date 把string转换成date
to_timestamp(text,text) date 把string转换成timestamp
to_number(text,text) numeric 把string转换成numeric

4.其他函数

函数名 函数功能 实例
UID 返回标识当前用户的唯一整数 select UID from dual;[结果:81 此时登录用户为scott]
USER 返回当前用户的名字 select USER from dual;[结果:scott]
NVL(expr1, expr2) NVL(expr1, expr2)表示如果expr1为NULL,返回expr2;不为NULL,返回expr1。注意expr1和expr2两者的类型要一致 select nvl(comm,100) from emp;
NVL2 (expr1, expr2, xpr3) expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
NULLIF (expr1, expr2) expr1和expr2相等返回NULL,不等返回expr1

猜你喜欢

转载自blog.csdn.net/sinat_30035833/article/details/78396915