今天主要是写一些常用的函数,就当复习一遍,偶尔还能看一下
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 |