|
续
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;
注意:看符号来判定类型转换哪一个类型,数字和日期没有转换
|
|
|