zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    打印九九乘法表
    PAT (Basic Level) Practice (中文) 1091 N-自守数 (15分)
    PAT (Basic Level) Practice (中文)1090 危险品装箱 (25分) (单身狗进阶版 使用map+ vector+数组标记)
    PAT (Basic Level) Practice (中文) 1088 三人行 (20分)
    PAT (Basic Level) Practice (中文) 1087 有多少不同的值 (20分)
    PAT (Basic Level) Practice (中文)1086 就不告诉你 (15分)
    PAT (Basic Level) Practice (中文) 1085 PAT单位排行 (25分) (map搜索+set排序+并列进行排行)
    PAT (Basic Level) Practice (中文) 1083 是否存在相等的差 (20分)
    PAT (Basic Level) Practice (中文) 1082 射击比赛 (20分)
    PAT (Basic Level) Practice (中文) 1081 检查密码 (15分)
  • 原文地址:https://www.cnblogs.com/yrjns/p/10914328.html
Copyright © 2011-2022 走看看