字符函数:
RPAD右补字符串 RPAD(X,length,Y) ,LPAD 左补字符串 LPAD(X,length,Y) 。
日期函数:
ADD_MONTHS(r,n)函数 r:指定的日期,n:要增加的月份数,如果N为负数,则表示减去的月份数。
LAST_DAY(r)函数:返回指定r日期的当前月份的最后一天日期。
NEXT_DAY(r,c)函数:返回指定R日期的后一周的与r日期字符(c:表示星期几)对应的日期。
EXTRACT(time)函数:返回指定time时间当中的年、月、日、分等日期部分。
select extract( year from timestamp '2019-08-19 15:36:01') as year,
extract( month from timestamp '2019-08-19 15:36:01') as month,
extract( day from timestamp '2019-08-19 15:36:01') as day,
extract( hour from timestamp '2019-08-19 15:36:01') as hour,
extract( minute from timestamp '2019-08-19 15:36:01') as minute,
extract( second from timestamp '2019-08-19 15:36:01') as second
from dual;
MONTHS_BETWEEN(r1,r2)函数:该函数返回r1日期和r2日期直接的月份。当r1>r2时,返回的是正数,假如r1和r2是不同月的同一天,则返回的是整数,否则返回的小数。当r1<r2时,返回的是负数。
ROUND(r[,f])函数:将日期r按f的格式进行四舍五入。如果f不填,则四舍五入到最近的一天。
select sysdate, --当前时间
round(sysdate, 'yyyy') as year, --按年
round(sysdate, 'mm') as month, --按月
round(sysdate, 'dd') as day, --按天
round(sysdate) as mr_day, --默认不填按天
round(sysdate, 'hh24') as hour, --按小时
round(sysdate, 'mi') as minute --按分钟
from dual;
TRUNC(r[,f])函数:将日期r按f的格式进行截取。如果f不填,则截取到当前的日期。
select sysdate, --当前时间
trunc(sysdate, 'yyyy') as year, --按年
trunc(sysdate, 'mm') as month, --按月
trunc(sysdate, 'dd') as day, --按天
trunc(sysdate) as mr_day, --默认不填按天
trunc(sysdate, 'hh24') as hour, --按小时
trunc(sysdate, 'mi') as minute --按分钟
from dual;
数值函数:
power(x,y) 求x的y次幂 ;sqrt(x) 求x的平方根 ;
round(x,y) ; 求数值x在y位进行四舍五入。y不填时,默认为y=0; 当y>0时,是四舍五入到小数点右边y位。当y<0时,是四舍五入到小数点左边|y|位。
trunc(x,y);求数值x在y位进行直接截取y不填时,默认为y=0; 当y>0时,是截取到小数点右边y位。当y<0时,是截取到小数点左边|y|位
转换函数:
cast(x as type):数据类型转换函数,该函数可以把x转换为对应的type的数据类型,基本上用于数字,字符,时间类型安装数据库规则进行互转。
select cast('123' as number) num,cast(123 as varchar2(3)) as ch,cast(to_date('20181112','yyyymmdd') as varchar2(12)) as time from dual;
to_char(x,f):把字符串或时间类型x按格式f进行格式化转换为字符串。
select to_char(123.46,'999.9') ,to_char(sysdate,'yyyy-mm-dd') from dual;
to_date(x,f):可以把字符串x按照格式f进行格式化转换为时间类型结果。
select to_date('2018-11-13','yyyy-mm-dd') from dual;
to_number(x,f):可以把字符串x按照格式f进行格式化转换为数值类型结果。
select to_number('123.74','999.99') from dual;