Oracle第三章:函数

第三章:函数
单值函数:针对每一行查询内容给出一个结果
组函数:把查询的所有行按照某个标准分组,每一个组给出一个输出
单值函数:
  注意:单值函数可以随意嵌套,但是潜逃之后先执行最里层的,在执行外层的
  字符函数
    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;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值