虚拟表:dual
转大写
select UPPER('hellow') from dual;
转小写
select lower(ename) from emp;
cmd 输入数据
select * from emp where ename = '&SMITH'
首字母大写,其他小写
select ename,INITCAP(ename) from emp;
取得字符串长度 orcal 所有从一开始
select LENGTH('hellow') from dual;
截取字符串 word
select substr('helloword',6) from dual;
截取hellow
select substr('helloword',0,6) from dual;
orcal从后截取
select substr('helloword',-2) from dual; 四舍五入 ROUND
SELECT ROUND(789.56712,2) from dual;
不设置位数取整: 790
SELECT ROUND(789.56712) from dual;
如果为负数,整数位四舍五入 800
SELECT ROUND(789.56712,-2) from dual;
TRUNC 去位 789.56
SELECT TRUNC(789.56712,2) from dual;
MOD求模
SELECT MOD(3,2) from dual; 当前日期 伪类
当前日期
SELECT SYSDATE FROM DUAL;
时间戳
SELECT SYSTIMESTAMP FROM DUAL;
日期+数字=日期(若干天之后)
select sysDATE+7 from dual;
日期-数字=日期(若干天之前)
select sysDATE-7 from dual;
日期-日期= 天数
增加月数,显示日期
select ADD_MONTHS(SYSDATE,4) from dual;
时间之间的月数
Select empno,MONTHS_BETWEEN(sysdate,hiredate) from emp;
当前月最后一天
SELECT LAST_DAY(SYSDATE) FROM dual;
前两天(最后一天)
SELECT empno,ename,hiredate,last_day(hiredate)-2 from emp
where hiredate=last_day(hiredate)-2
下一个星期三
SELECT NEXT_DAY(sysDATE,'星期三') from dual;
查看员工被录取了多少年多少月多少日
SELECT
TRUNC(MONTHS_BETWEEN(sysDATE,hiredate)/12) as year,
TRUNC(MOD(MONTHS_BETWEEN(sysDATE,hiredate),12)) as month,
TRUNC(sysDATE-ADD_MONTHS(hiredate,MONTHS_BETWEEN(sysDATE,hiredate))) day,
empno,ename,hiredate
from emp 转字符串函数
日期:年(yyyy)、月(mm)、日(dd)
时间:时(hh、hh24)、分(mi)、秒(ss)
数字:任意数字(9)本地货币符号(L) 日期格式化:
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd') from dual;
格式化日期时间:
SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh:mi:ss') from dual;
日期拆分
SELECT TO_CHAR(SYSDATE,'yyyy'),TO_CHAR(SYSDATE,'mm'),TO_CHAR(SYSDATE,'dd') from dual;
格式化数字:
SELECT TO_CHAR(434343434343434,'L999,999,999,999,999') from dual; 转日期
SELECT to_Date('2019-01-20','yyyy-mm-dd') from dual; 转数字
SELECT '1'+'2' from dual; SELECT TO_CHAR(to_Date('2019-04-18','yyyy-mm-dd'),'yyyy-mm-dd hh:mi:ss') from dual;
SELECT to_Date('2019-04-18','yyyy-mm-dd hh:mi:ss') from dual; 通用函数
处理空函数
NVL 取代空
select empno,ename,sal,comm,NVL(comm,0) from emp;
decode 将数据展示自己的值
select ename,job,decode(job,'CLERK','业务员','SALESMAN','销售人员','---') from emp