当前位置:网站首页>Oracle数据库常用函数总结

Oracle数据库常用函数总结

2022-08-09 10:28:00 jie_ming514

我本楚狂人,凤歌笑孔丘 ------唐·李白《庐山谣寄卢侍御虚舟》

一、字符串函数

  • 显示员工姓名,其中首字母大写,其余小写
 select concat(upper(substr(ename,1,1)),lower(substr(ename ,2,length(ename)-1))) from emp

知识点:大小写转换

  • initcap()函数可以实现首字母大写的功能
select rownum as 序号, initcap(ename) as 姓名 from emp

知识点:首字母大写

  • 将薪资打印出来,并带有人民币¥标识符
select ename as 姓名, to_char(sal, 'L999,999.99') as 薪资 from emp; //L表示本地货币的符号

知识点:字符格式转化

  • 求出薪资大于$1000.00的员工的姓名(重在将货币转化成数字)
select ename ,to_char(sal, '$999,999.99') from emp
where sal < to_number('$1,000.00','$99,999.99')
  • 打印员工的年薪
select ename as 姓名, to_char(sal*12+nvl(comm,0),'L99,999.99') as 年薪 //nvl的作用为:如果comm为空,则令他为空
    from emp    //注:在oracle中,null+number=null

知识点:nvl(num1,num2):如果num1为null则取null.

  • 打印系统时间(以特定格式)
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as 当地时间 from dual

知识点:时间转化为字符串

  • 打印任意时间
select to_date('2015-10-24 18:24:45','yyyy-mm-dd hh24:mi:ss') from dual
  • 查询在1985年10月1日以前入职的员工信息
select ename ,hiredate from emp
where hiredate < to_date('1985-10-1','yyyy-mm-dd')
--默认格式
select ename ,hiredate from emp
where hiredate <to_date('1-10-1985')
  • 今天星期几
select to_char(sysdate,'day') from dual //打印的是字符串 ,如:‘星期一’

select to_char(sysdate,'D') from dual //打印的是数字,星期天为1,星期一位2.
select to_char(sysdate,'year'), to_char(sysdate,'month'), to_char(sysdate,'day') from dual;
  • 任意时间是星期几
select to_char(to_date('1-1月-1987'),'day') from dual
  • 查询入职时在星期四的员工的信息
select * from emp where to_char(hiredate ,'D')=5

二、数值函数

  • mod()函数(求余函数)
select mod(5,3),mod(5,-3),mod(-5,3),mod(-5,-3) from dual;

结果:
在这里插入图片描述

总结:d=mod(m,n) => m=n*q+d. 整数求余中,余数的正负号与除数无关,与被除数的符号相同。

  • round()函数(四舍五入函数)
select round(2.345,1),round(2.345),round(2.543,0),round(-2.345,0) from dual;

结果:
在这里插入图片描述

总结:四舍五入,与符号无关,小数位数没有写就是默认取整数。

  • floor()函数(向下取整函数)
select floor(3.4),floor(3.5),floor(-3.4) from dual;

结果:
在这里插入图片描述

总结:向下取整,返回小于或等于数值型参数的最大整数,向负无穷方向取整。

  • ceil()函数(向上取整函数)
select ceil(3.4),ceil(3.5),ceil(-3.4) from dual;

结果:
在这里插入图片描述

总结:向上取整,返回大于或等于数值型参数的最小整数,向无穷大方向取整。

  • trunc()函数(截取数字)
select trunc(3.4),trunc(3.5),trunc(-3.4) from dual;

结果:
在这里插入图片描述

总结:截取数字,trunc(n1,n2)函数用于将数值n1根据n2进行截取,没有位数默认为向零取整

三、时间函数

  • current_date()函数
select sessiontimezone as 时区, current_date as 时间 from dual;

结果:在这里插入图片描述

  • extract()函数

该函数可以从指定时间中提取指定的日期部分,如日期中的年、月、日、时、分、秒等,其使用的语法为
extract(域名 from 日期)

select hiredate, extract(month from hiredate) month from emp;--取时间的月份值

extract函数中各种域的列表

域代码说明
year获取年份
month获取月份
day获取天数
hour获取小时数
minute获取分钟数
secound获取秒数
timezone_hour获取当前时区的小时数
  • last_day()函数(返回特定日期所在月的最后一天)
select hiredate, extract(day from last_day(hiredate)) month from emp;

结果:
在这里插入图片描述

  • add_months()函数(增加月份)
select hiredate,add_months(hiredate,2) from emp;

结果:
在这里插入图片描述

  • to_char(SYSDATE,‘D’)

DDD是该天在一年内的第多少天,d是在一周内第几天,dd是一个月内的 DY :Day of week abbreviated Mon,
Tue, Fri DAY :Day of week spelled out Monday, Tuesday, Friday D :Day
of week (1–7) 1,2,3,4,5,6,7--注意:每星期的第1天是”星期日“ DD :Day of month (1–31)
1,2,3,4…31 DDD :Day of year (1–366) 1,2,3,4…366

今天星期几
在这里插入图片描述

原网站

版权声明
本文为[jie_ming514]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m1090760001/article/details/103832301