-- 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;