[学习笔记]Oracle字符串函数、日期函数、数值函数、转换函数、聚合函数

database

函数

  • 单行函数:对一行数据进行操作的函数,如字符串函数、数值函数、转换函数、日期函数等。
  • 聚合函数:同时对多行数据进行操作,如求和函数等。

字符串函数

函数

说明

ASCII(X)

求字符X的ASCII码

CHR(X)

求ASCII码对应的字符

LENGTH(X)

求字符串X的字符长度

CONCATA(X,Y)

连接X和Y两个字符串

INSTR(X,Y[,START])

查找在字符串X中字符串Y的位置,可以指定从Start位置开始搜索,默认从头开始

LOWER(X)

把字符串中大写字母转换为小写

UPPER(X)

把字符串中小写字母转换为大写

INITCAP(X)

把字符串中所有单词首字母转换为大写,其余小写

LTRIM(X[,Y])

去掉字符串X左边的Y字符串,Y不填时,默认的是字符串X左边去空格

RTRIM(X[,Y])

去掉字符串X右边的Y字符串,Y不填时,默认的是字符串X右边去空格

TRIM(X[,Y])

去掉字符串X两边的Y字符串,Y不填时,默认的是字符串X左右去空格

REPLACE(X,old,new)

将字符串中的old字符替换为new字符

SUBSTR(X,start[,length])

截取字符串X,从start位置开始截取长度为length的字符串,length不填默认为截取到字符串X末尾

RPAD(X,length[,Y])

对字符串X进行右补字符Y使字符串长度达到length长度

LPAD(X,length[,Y])

对字符串X进行左补字符Y使字符串长度达到length长度

日期函数

函数

说明

sysdate()

系统的当前时间

systimestamp()

系统的当前时间,包含时区信息,精确到微秒

dbtimezone()

返回数据库时区

ADD_MONTHS(r,n)

返回在指定日期r上加上月份n后的日期,n可以为负数

LAST_DAY(r)

返回指定r日期的当前月份的最后一天的日期

NEXT_DAY(r,c)

返回指定r日期后的星期几c对应的日期

EXTRACT(time)

返回指定time时间当中的年月日、时分秒等特定部分

MONTHS_BETWEEN(r1,r2)

返回两个日期间的月份数,结果是正数、负数、小数

ROUND(r[,f])

将日期r按f的格式进行四舍五入

TRUNC(r[,f])

将日期r按f的格式进行截取

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

select systimestamp from dual;

select dbtimezone from dual;

-- 结果为 2018-11-30,2018-10-31

select

to_char(add_months(to_date('2018-10-31','yyyy-mm-dd'),1),'yyyy-mm-dd'),

to_char(add_months(to_date('2018-09-30','yyyy-mm-dd'),1),'yyyy-mm-dd')

from dual;

select last_day(sysdate) from dual;

select next_day(to_date('2018-11-12','yyyy-mm-dd'),'星期四') from dual;

select extract(year from timestamp '2018-11-12 15:36:01') as year,

extract(month from timestamp '2018-11-12 15:36:01') as month,

extract(day from timestamp '2018-11-12 15:36:01') as day,

extract(minute from timestamp '2018-11-12 15:36:01') as minute,

extract(second from timestamp '2018-11-12 15:36:01') as second

from dual;

select months_between(to_date('2018-11-12', 'yyyy-mm-dd'),

to_date('2017-11-12', 'yyyy-mm-dd')) as zs, --整数

months_between(to_date('2018-11-12', 'yyyy-mm-dd'),

to_date('2017-10-11', 'yyyy-mm-dd')) as xs, --小数

months_between(to_date('2017-11-12', 'yyyy-mm-dd'),

to_date('2018-10-12', 'yyyy-mm-dd')) as fs --负数

from dual;

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 --按小时

from dual;

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 --按小时

from dual;

数值函数

函数

解释

ABS(X)

求数值X的绝对值

COS(X)

求数值X的余弦

ACOS(X)

求数值X的反余弦

CEIL(X)

向上取整

FLOOR(X)

向下取整

log(x,y)

求x为底y的对数

mod(x,y)

求x除以y的余数

power(x,y)

求x的y次幂

sqrt(x)

求x的平方根

round(x[,y])

求数值x在y位进行四舍五入。y默认为0,可以为负数

trunc(x[,y])

求数值x在y位进行直接截取。y默认为0,可以为负数

转换函数

函数

解释

asciistr(x)

把字符串转换为数据库字符集对应的ASCII值

bin_to_num(x1[x2...])

二进制数值转换为十进制数值

cast(x as type)

把x转换为type类型的数据

convert(x,d_chset[,r_chset])

对字符串x按原字符集r_chset转换为目标字符集d_chset

to_char(x[,f])

把字符串或时间类型x按格式f转换为字符串

to_date(x[,f])

把字符串x按照格式f转换为时间类型

to_number(x[,f])

把字符串x按照格式f转换为数值类型

其中数值的格式f可以参考下表:

参数

示例

说明

9

999

指定位置返回数字

.

99.9

指定小数点的位置

99,9

指定位置返回一个逗号

$

$99.9

指定开头返回一个美元符号

EEEE

9.99EEEE

指定科学计数法

聚合函数

函数

解释

AVG([distinct ] expr)

求列或列组成的表达式expr的平均值

count(*|[distinct]expr)

计算查询结果的条数或行数

MAX([distinct] expr)

指定列或列组成的表达式expr中的最大值

MIN([distinct] expr)

指定列或列组成的表达式expr中的最小值

SUM([distinct] expr)

对指定列或列组成的表达式expr进行求和

select classno, avg(t.age) from stuinfo t where t.age < 30 group by t.classno;

select classno, sum(age), count(*), sum(age) / count(*), avg(age) from stuinfo t where t.age < 30 group by t.classno;

以上是 [学习笔记]Oracle字符串函数、日期函数、数值函数、转换函数、聚合函数 的全部内容, 来源链接: utcz.com/z/532671.html

回到顶部