• oracle常见的函数


    1、字符函数

    -- initcap函数只针对英文
    select * from tb_user where user_name = initcap('张三');
    
    
    -- ltrim 左剪切
    select ltrim('helloworld','h') from dual; ----  elloworld
    
    select ltrim('helloworld','ah') from dual; ----  elloworld
    
    select ltrim('helloworld','l') from dual;----  helloworld
    
    select ltrim('helloworld','hl') from dual; ----  elloworld
    
    select ltrim('helloworld','he') from dual; 
    
    
    --   rtrim 右剪切
    #translate 翻译 一个字符只能匹配一个字符
    select translate('helloworld','h','A') from dual;--   Aelloworld
    
    select translate('helloworld','hl','AG') from dual;--   AeGGoworGd
    
    select translate('helloworld','lh','AG') from dual;--   GeAAoworAd
    
    select translate('helloworld','l','AG') from dual;--   heAAoworAd
    
    
    --  repalce 多个字符可以替换一个字符或者多个字符
    select replace('hello world','e','你好') from dual;--  h你好llo world
    
    --  instr -->查询子字符串的位置
    select instr('hello world','w') from dual;--  7 从1开始
    
    select instr('hello world','rl') from dual;--   9
    
    
    --  substr截取字符串
    select substr('hello world',2,3) from dual; --  从2开始截取,取3个字符
    
    select concat('hello','world') from dual;#helloworld
    
    select concat('hello',null) from dual;#hello

     常用的数字函数

    -- abs --->求绝对值
    select abs(-10) from dual;-- 10
    select abs(-0) from dual; -- 0
    
    -- ceil向上取整 ceil-->天花板函数
    select ceil(3.14) from dual; -- 4
    select ceil(-3.14) from dual;--  -3
    
    -- sign 取符号
    select sign(100) from dual; --   1
    select sign(-4343) from dual; --    -1
    select sign(0) from dual;--    0
    select sign(-0) from dual;--   0
    
    select floor(3.14) from dual;--  3
    select floor(4) from dual;--   4
    select floor(-3.14) from dual; --   -4
    
    --  power(m,n) m的n次幂
    --  求2的3次方
    select power(2,3) from dual;--  8
    
    --  mod取余
    --   11/2的余数
    select mod(11,2) from dual;--  1
    
    --  round 四舍五入
    select round(3.14) from dual;--  3
    select round(3.5) from dual;--  4
    
    --  trunc 截取数字
    select trunc(100.5466,3) from dual;--  100.546
    --  sqrt 求平方根
    select sqrt(9) from dual;--  3

     常用的日期函数

    --      日期函数
    --      months_between--->返回两个日期之间的月的数量
    select months_between('8-8月-08','4-7月-17') from dual;
    select months_between('4-7月-17','8-8月-08') from dual;
    
    --      add_months 添加月份
    select add_months('4-7月-17',4) from dual;
    select add_months('31-7月-17',-5) from dual;--      2017/2/28
    
    --      next_day
    select next_day('4-7月-17','星期四') from dual;
    select next_day('4-7月-17','星期日') from dual;--      2017/7/9
    
    --      last_day --->获取每个月最后一天的日期
    select last_day('4-7月-17') from dual;
    select last_day('2-2月-08') from dual;#2008/2/29
    
    --      round--->对日期进行四舍五入 四舍:当年的1月1日 五入:下一年的1月1日
    --      年中的四舍五入以7为界限的!!
    select round('4-7月-17','year') from dual;
    select round(sysdate,'year') from dual;
    select round(to_date('30-6月-17'),'year') from dual;
    --      对月份进行四舍五入: 要么舍为当月的第一天,或者下一月的第一天 以16为界限
    select round(to_date('4-7月-17'),'month') from dual;
    select round(to_date('16-7月-17'),'month') from dual;
    select round(to_date('15-2月-17'),'month') from dual;--      2017/2/1
    
    --      对具体日期进行四舍五入-星期
    --      当周的第一天或者下周的第一天
    --      老外认为周日是一周的开始!!
    --      以周四为界限
    select round(to_date('4-7月-17'),'day') from dual;#2017/7/2 --->星期天
    select round(to_date('6-7月-17'),'day') from dual;
    
    --      trunc 截取日期
    --      对于年来说:截为当年的1月1日
    select trunc(to_date('4-7月-17'),'year') from dual;#2017/1/1
    select trunc(to_date('12-12月-17'),'year') from dual;#2017/1/1
    --      对于月份来说:截为当月的1日
    select trunc(to_date('4-7月-17'),'month') from dual;#2017/7/1
    --      对于具体的日期day来说是截取为当前日期的周日
    select trunc(to_date('4-7月-17'),'day') from dual;#2017/7/2

     

    -- to_char -->把其他类型转为字符串
    select to_char(sysdate) from dual;
    
    -- q的模式是第几季度
    select to_char(sysdate,'q') from dual;-- 3
    -- 获取当天日期在年中的天数 select to_char(sysdate,'ddd') from dual;-- 185天 select to_char(sysdate,'dd') from dual; -- 4 select to_char(sysdate,'d') from dual;-- 3 星期三--对于老外 -- 当前日期在年中是第几周了 select to_char(sysdate,'ww') from dual;-- 27 select to_char(sysdate,'w') from dual;-- 1 -- to_date --->把一定格式的字符串转换为日期对象 -- yyyy-mm-dd select to_date('2017-7-4','yyyy-mm-dd') from dual;
    --hh 默认为12小时 select to_date('2017-7-4 14:05:11','yyyy-mm-dd hh24:mi:ss') from dual;

     常用的其他函数

    1)获取随机字符串
    select dbms_random.string('l',2) from dual; -- l-->lower 2-->字符串的长度
    select dbms_random.string('u',2) from dual; --> u-->upper 大写

    2) oracle中的随机数字
    select dbms_random.value(0,1) from dual; -- 0~1 但是取不到1
    select trunc(dbms_random.value(1,10),0) from dual;

  • 相关阅读:
    电脑发朋友圈神器?不是严格意义上的
    微信公众平台投票功能升级 可多渠道发布投票
    多客服功能终于也向所有微信认证的订阅号开放了
    微信电脑版-微信for windows客户端发布
    微信朋友圈广告的赢家是他们
    微信公众平台原创声明功能公测 自媒体原创保护的福音
    微信公众平台数据接口正式对所有认证公众号开放
    壕,微信6.1版发微信红包更方便了,我们去喝杯茶吧
    微信公开课发布微信官方教程:教你用好微信JS-SDK接口
    微信公众平台开放JS-SDK(微信内网页开发工具包)
  • 原文地址:https://www.cnblogs.com/yrjns/p/10914328.html
Copyright © 2020-2023  润新知