第三章:函数
单值函数:针对每一行查询内容给出一个结果
组函数:把查询的所有行按照某个标准分组,每一个组给出一个输出
单值函数:
注意:单值函数可以随意嵌套,但是潜逃之后先执行最里层的,在执行外层的
字符函数
lower将字符串转化成小写 select lower('HellO') from dual;
查询名字为pater的员工信息
select last_name,salart from s_emp where lower('last_name')=lower('patel');
upper将字符串转化为大写 select upper('test') from dual;
initcap将字符串中单词首字母大写 select initcap('hello world') from dual;
concat字符串拼接,相当于|| select concat('hello','world') from dual;
substr对字符串进行截取的
两个参数,第二个参数表示从什么位置截取select substr('helloworld',4) from dual;//loworld
三个参数,第三个参数表示表示截取的长度select substr('helloworld',4,5) from dual;//lowor
length获取字符串长度 select length('hello') from dual;
nvl处理有null的值,针对字符串,时间,数字类型,第二个参数要和第一个参数类型匹配
数字函数
round表示的是四舍五入
一个参数表示取整数,看小数点后一位 select round(35.468) from dual;//35
第二个参数是正数,表示小数点后取几位,看到是取到小数点位的下一位
select round(35.468,1) from dual;//35.5
select round(35.468,4) from dual;//35.468
第二个参数是负数,表示看小数点前的位数,向前一位进值
select round(53.468,-1) from dual;//50
select round(53.468,-3) from dual;//0
trunc表示截取,取整
select trunc(35.468) from dual;//35
select trunc(35.468,1) from dual;//35.4
select trunc(35.468,-1) from dual;//30
select trunc(35.468,-2) from dual;//0
mod 表示取余
select mod(1500,200) from dual;//100
日期函数
months_between 求两个时间相差几个月,不足一个月小数表示,前面减后面
select months_between('23-8月-18','03-9月-18') from dual;//-.354
add_months 给某个时间增加几个月
select add_month(sysdate,6) from dual;//04-3月-19
next_day 下一个周几是几号
select next_day('23-8月-18','星期五') from dual;//24-8月-18
lat_day 指定月份的最后一天是几号
select last_day(sysdate) from dual;//30-9月-18
round 对时间进行四舍五入 day month year
按照day截取,看的是星期,从星期四开始都进入下周第一天,小于周四的回到本周第一天,第一天是周日
select round(to_date('04-9月-18','dd-Mon-yy'),'day') from dual;//02-9月-18
按照month截取,看的是天数,从16号开始进入下一个月第一天,不到16号回到本月第一天
select round(to_date('04-9月-18','dd-Mon-yy'),'month') from dual;//01-9月-18
按照year截取,看的是月份,从7月开始进入下一个年第一天,不到7月回到本年第一天
select round(to_date('04-9月-18','dd-Mon-yy'),'year') from dual;//01-1月-19
trunc 对事件进行截取,取整 day month year
按照day截取,看的是星期,回到本周第一天,第一天是周日
select trunc(to_date('04-9月-18','dd-Mon-yy'),'day') from dual;//02-9月-18
按照month截取,看的是天数,回到本月第一天
select trunc(to_date('04-9月-18','dd-Mon-yy'),'month') from dual;//01-9月-18
按照year截取,看的是月份,回到本年第一天
select trunc(to_date('04-9月-18','dd-Mon-yy'),'year') from dual;//01-1月-18
转换函数
to_date 将字符串转化为时间
简体中文环境 select to_date('04-9月-18','dd-Mon-yy') from dual;
英文环境 select to_date('04-May-18','dd-Mon-yy') from dual;
select to_date('04-09-18','dd-mm-yy') from dual;
to_number 将字符串类型的数字转换为数字类型,不能有非数字的内容
select to_number('122121') from dual;//122121
to_char
将数字类型转化为特定格式的字符串,第二个参数规定的是格式
fm去掉前面的空格,$表示没有符号 9表示占位不补位 0表示占位并补位
,千分符 .小数点 L表示本地币种,和操作系统语言有关
select to_char('2333.33','fm$999,999.999') from dual;//$2,333.33
select to_char('2333.33','fm$000,000.000') from dual;//$002,333.330
select to_char('2333.33','fm$000.000') from dual;//$#######
select to_char('2333.33','fmL$000,000.000') from dual;//¥002,333.330
将时间类型转化为特定格式的字符串,第二个参数是格式
yyyy完整难过的年份 mm表示月份 d表示一个星期的第几天 dd表示一个月的第几天
ddd一年的第几天 year英文年份 month月份中文 ddsp月中的几号英文
ddspth月中的几号英文 day星期几 dy星期几 hh小时,如果显示24进制hh24
mi分钟 ss秒 am|pm显示上下午
select to_char(sysdate,'d dd ddd') from dual;//3 04 247
select to_char(sysdate,'ddsp ddspth') from dual;//four fourth
select to_char(sysdate,'day dy') from dual;//星期二 星期二
注意:时间转化为字符串需要输出特殊字符的时候双引号引起来
select to_char(sysdate,'mm "of" dd') from dual;//09 of 04;
Oracle第三章:函数
最新推荐文章于 2021-12-19 17:56:52 发布