1.字符函数:
函数 | 说明 |
ASCII(X) | 返回字符X的ASCII码 |
concat(X,Y) | 连接字符串X和Y |
instr(X,str[,start][,N) | 从X中查找str,可以指定从start开始,也可以指定从n开始 |
length(X) | 返回X的长度 |
loewer(X) | X转换成小写 |
upper(X) | X转换成大写 |
ltrim(X[,trim_str]) | 把X的左边截去trim_str字符串,缺省截去空格 |
rtrim(X[,trim_str]) | 把X的右边截去trim_str字符串,缺省截去空格 |
trim([trim_str from]X) | 把X的两边截去trim_str字符串,缺省截去空格 |
initcap(X) | 首字母大写 |
replace(X) | 进行替换 |
substr(开始截取位置,截取个数) | 字符串截取;第一个数是开始的位置,第二个数字是从截取位置开始截取的个数 |
2.数字函数:
函数 |
说明 |
示例 |
ABS(X) |
X的绝对值 |
ABS(-3)=3 |
ACOS(X) |
X的反余弦 |
ACOS(1)=0 |
COS(X) |
余弦 |
COS(1)=0.54030230586814 |
CEIL(X) |
大于或等于X的最小值 |
CEIL(5.4)=6 |
FLOOR(X) |
小于或等于X的最大值 |
FLOOR(5.8)=5 |
LOG(X,Y) |
X为底Y的对数 |
LOG(2,4)=2 |
MOD(X,Y) |
X除以Y的余数 |
MOD(8,3)=2 |
POWER(X,Y) |
X的Y次幂 |
POWER(2,3)=8 |
ROUND(X[,Y]) |
X在第Y位四舍五入 |
ROUND(3.456,2)=3.46 |
SQRT(X) |
X的平方根 |
SQRT(4)=2 |
TRUNC(X[,Y]) |
X在第Y位截断 |
TRUNC(3.456,2)=3.45 |
trunc(X) |
舍弃小数位 |
2.日期函数:
函数 | 说明 |
ADD_MONTHS(d,n) | 在某一个日期 d 上,加上指定的月数 n,返回计算后的新日期 |
LAST_DAY(d) | 返回指定日期当月的最后一天 |
ROUND(d[,fmt]) |
回一个以 fmt 为格式的四舍五入日期值, d 是日期, fmt 是格式 Ø ① 如果 fmt 为“YEAR”则舍入到某年的 1 月 1 日,即前半年舍去,后半年作为下一年。 Ø ② 如果 fmt 为“MONTH”则舍入到某月的 1 日,即前月舍去,后半月作为下一月。 Ø ③ 默认为“DDD”,即月中的某一天,最靠近的天,前半天舍去,后半天作为第二天。 Ø ④ 如果 fmt 为“DAY”则舍入到最近的周的周日,即上半周舍去,下半周作为下一周周日。 例:SELECT SYSDATE,ROUND(SYSDATE),ROUND(SYSDATE,'day'), ROUND(SYSDATE,'month'),ROUND(SYSDATE,'year') FROM dual; |
EXTRACT(fmt FROM d) | 提取日期中的特定部分 |
sysdate+3 |
获取当前日期:sysdate;3天后的日期 select ename, sysdate+3 from emp; |
|| |
管道符,拼接字符串 select ename||3 from emp; |
last_day |
获取当月最后一天 select last_day(sysdate) from dual; |
next_day |
下一次出现星期X的日期 select next_day(sysdate,'星期日') from dual |
add_months |
几个月之后的日期(加减月份) select add_months(sysdate, 4) from dual; |
month_between |
select trunc(months_between('1-2月-2017',sysdate)) from dual; |
四、转换函数
函数 | 说明 |
TO_CHAR(d|n[,fmt]) |
把日期和数字转换为制定格式的字符串。Fmt是格式化字符串 SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS')"date" FROM dual;
|
TO_DATE(X,[,fmt]) | 把一个字符串以fmt格式转换成一个日期类型 |
TO_NUMBER(X,[,fmt]) | 把一个字符串以fmt格式转换为一个数字 |
to_char |
把日期(任意类型)转换成字符串 select to_char(sysdate,'yyyy-mm-dd') from dual; select to_char(123456789,'999,999,999,999') from dual; |
to_date |
把任意类型转成时间日期 |
to_number |
把任意类型转成数字 select to_number('123')+123 from dual; |
5.通用函数
函数 | 说明 |
nvl(a,b) | a不为空时等于a,否则返回b |
nvl(x,a,b) | x不为空时返回a,否则返回b |
decode(x,a,b,c) | 当x=a时,返回b,否则返回c |