续 FUNCTION 单行函数 lowner Upper initcap 字符控制函数 concat substr concat(只能拼接两个) length/lengthb 编码方式为UTF8/GBK 一个中文占3/2个字节长度,一个英文一个字节 instr/lpad/rpad 从左向右找第一次出现的位置,从1开始 找不到返回0,大小写敏感 trim/replace函数 round/trunc/mod(余数) SQL> select round(3.1415926,3) from dual; SQL> select trunc(3.1415926,3) from dual; round/trunc可以用于日期 SQL> select round(sysdate,'month') from dual; SQL> select round(sysdate,'year') from dual; 显示昨天,今天,明天日期 SQL> select sysdate-1 "昨天",sysdate "今天",sysdate+1 "明天" from dual;

MONTHS_BETWEEN FUNCTION 精确到年底还有多少个月 select round(months_between('31-12月-18',sysdate),0) from dual; 精确月形式显示员工工龄 ADD_MONTHS FUNCTION 下个月今天是几号 select add_months(sysdate,-1) from dual; NEXT_DAY FUNCTION 从今天开始算,下一个星期三是几号 select next_day(sysdate,'星期三') from dual; 下下个星期三多少号 select next_day(sysdate,'星期三'),'星期三') from dual; 下一个星期三的星期日是多少号 select next_day(next_day(sysdate,'星期三'),'星期日') from dual; LAST_DAY FUNCTION 本月最后一天是多少号 SQL> select last_day(sysdate) from dual; 本月的倒数第二天是多少号 SQL> select last_day(sysdate) from dual; 下一个月最后一天是多少号 select last_day(add_mouths(sysdate,1)) from dual; 上一个最后一天是多少号 select last_day(add_month(sysdate,-1)) from dual; 类型转换 早起varchar 后期Oracle想支持全球各类型语言,varchar2后期诞生 显式转换 使用函数将类型转换叫做显示转换 比如varchar(10)没存储完将自动回收剩余字节 char将没有填充数据的空单元填充满

to_char function 日期转换成字符串 SQL> select to_char(sysdate,'yyyy "年" mm "月" dd "号" day') from dual; SQL> select to_char(sysdate,'yyyy mm dd "今天是" day HH12:MI:SS AM') from dual; 数字转字符串 SQL> select to_char(1234,'$9,999') from dual; 字符串转日期 SQL> select * from user_tab hirdate = to_date('1980年12月17日','yyyy"年"mm"月"dd日"'); 字符串转数字 SQL> select to_number('123') from dual; SQL> select to_number('123')+123 from dual; SQL> select '123' * 1231 from dual; SQL> select '123' || 123 from dual; 注意:看符号来判定类型转换哪一个类型,数字和日期没有转换