函数

单值函数:针对每一行查询内容给出一个结果

select system from dual;

组函数:把查询的所有行按照某个标准分组,每个组给出一个输出

select system from s_emp;

※ 字符函数

※ 1. lower 将字符串转化为小写

select lower(’HELLO’)from dual;

查询名字为patel的员工信息

select last_name,salary
from s_emp
where lower(last_name)=lower(’patel’);

※ 2. upper 将字符转化成大写

select upper (‘hello’)from dual;(与lower相同用法)

※ 3. initcap 将字符串中单词首字母大写

select initial(‘hEllo’)from dual;

※ 4. concat 字符串拼接,相当于||

select concat(‘hello’,’world’)from dual;

//last_name.first_name
select concat(last_name,concat(‘.’,first_name))
from s_emp;

注意:单值函数可以所以嵌套,但是嵌套之后先执行最里层的再执行外层的

※ 5. substr 对字符串进行截取
两个参数,第二个参数表示从什么位置开始截取

select substr(‘helloworld’,4)from dual;

三个参数,第二个参数表示从什么位置开始,第三个表示截取长度

select subser(‘helloworld’,4,5)from dual;

※ 6. length 获取字符串的长度

select length(‘hello’)from dual;

※ 7. nvl 处理有null的值
nvl(column_name,出现null替换的值)
注意:nvl如果第一个参数是时间列,第二个参数也要写时间
如果第一个参数是字符串,第二个参数也要写字符串
如果第一个参数是数字类型,第二个参数也要写数字类型
表示值的时候时间和字符串必须加单引号

select last_name,nvl(start_data,’01-9月-18‘)
from s_emp;

针对字符串,时间,数字类型
注意:第二个参数和第一个参数类型匹配

※ 数字函数

※ 1. round 表示四舍五入

select round(35.468)from dual;//35 一个参数表示取整,看小数点后一位
select round(35.468,1)from dual;//35.5 两个参数,第二个参数是正数,表示小数点后取几位,看的是取到小数点位的下一位
select round(35.468,-1)from dual;//40
select round(35.468,-2)from dual;//0 两个参数,第二个参数是负数,表示小数点前取几位,向前一位进制

※ 2. trunc 表示截取(同round用法相同)

select trunc(35.468)from dual;//35 一个参数表示取整
select round(35.468,1)from dual;//35.4 两个参数,第二个参数是正数,表示小数点后取几位
select round(35.468,-1)from dual;//30
select round(35.468,-2)from dual;//0 两个参数,第二个参数是负数,表示小数点前取几位

※ 3. mod 表示取余

select mod(1500,200)from dual;//100

※ 日期函数:(sysdate当前时间)

※ 1. months_between(求两个时间相差几个月)

select months_between(’23-9月-18’,’23-8月-18’)from dual;//1(月,不到一个月用小数表示)

※ 2. add_months 给某个时间增加几个月

select add_months(sysdate,6) from dual;

※ 3. next_day 下一个周几(本周)是几号

select next_day(sysdate,’星期五‘)from dual;
select next_day(’23-9月-18’,’星期五‘)from dual;

※ 4. last_day 指定月份的最后一天是几号

select last_day(sysdate)from dual;

※ 5. round 对时间进行四舍五入 (day month year)
a. 按照day截取,看的是星期,从星期四开始都进入下周第一天,小于周四的回到本周的第一天(周末)。

select round(to_date(’04-9月-18’,’dd-Mod-yy’),’day’)from dual;

b. 按照month截取,看的是天数,从16号开始都进入下月第一天,不到16号回到本月第一天。

select round(to_date(’04-9月-18’,’dd-Mod-yy’),’month’)from dual;

c. 按照year截取,看的是月份,从7月开始都进入下一年第一天,不到7月回到本年第一天。

select round(to_date(’04-9月-18’,’dd-Mod-yy’),’year’)from dual;

※ 6. trunc 对时间进行截取 day month year(与round用法相同)
a. 按天截取回到指定时间所在星期的第一天

select trunc(to_date(’04-9月-18’,’dd-Mod-yy’),’day’)from dual;

b. 按月截取回到指定时间所在月份的第一天

select trunc(to_date(’04-9月-18’,’dd-Mod-yy’),’month’)from dual;

c. 按年截取回到指定时间所在年份的第一天

select trunc(to_date(’04-9月-18’,’dd-Mod-yy’),’year’)from dual;

※ 转化函数

※ 1. 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;

※ 2. to_number将字符串类型的数字转化为数字类型

select to_number(‘2323’)from dual;(不能加非数字的字符串)

※ 3. to_char将数字类型转化为特定格式的字符串
第二个参数规定的是格式

select to_char(‘233.33’,’fm’$999,999.999’)from dual;

fm 去掉前面的空格
$ 表示美元符号
9 表示占位不补位
0 表示占位并补位
, 千分符
. 小数点
L 本地币种,和操作系统语言有关
※ 4. 将时间类型转化为特定格式的字符串

select to_char(sysdate,’’)
from dual;

(第二个参数表示格式)

※ 格式:

1. yyyy              完整的年份
select to_char(sysdate,’yyyy’)
from dual;
2. mm                表示月份
3. d                 一个星期的第几天
4. dd                一个月的第几天
5. ddd               一年的第几天
select to_char(sysdate,’d dd ddd’)
from dual;
6. year              英文年份的
7. month             月份
8. ddsp              月中的几号(英文)
9. ddspth            月中的第几号(英文)
10. day              星期几
11. dy               星期几
12. hh               小时(如果显示24进制:hh24)
13. mi               分钟
14. ss               秒
15. am/pm            显示上/下午

注意:时间转化为字符串需要输出特殊字符的时候,双引号引起来

select to_char(sysdate,’mm”of”dd’)
from dual;//09 of 5

※ 千年虫

※ yy格式:
从数据库取出年份拼接当前年份的前两位
※ rr格式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值