数字操作函数
SELECT ROUND(45.923,2), ROUND(45.923,0), ROUND(45.923,-1) FROM DUAL;
ROUND(45.923,2) ROUND(45.923,0) ROUND(45.923,-1)
--------------- --------------- ----------------
45.92 46 50
SELECT Floor(45.923,2), Floor(45.923), Floor(45.923,-2) FROM DUAL;
TRUNC(45.923,2) TRUNC(45.923) TRUNC(45.923,-2)
--------------- ------------- ----------------
45.92 45 0
以小数点位核心,2 是小数点后两位,0 可以不写,表示取整,-1 表示小数点前一位
ROUND 是四舍五入,TRUNC是截断,全部舍弃。(mysql是floor)
select ceil(45.001) from dual;取整,上进位,和 trunc 全部去掉正好相反
CEIL(45.001)
------------
46
select abs(-23.00) from dual;取绝对值
select mod(sal,2000) from emp;取余数
数据类型的隐式转换
字符串可以转化为数字和日期。
数字要合法,日期要格式匹配。
select ename,empno from emp where empno='7900';
数字和日期在赋值的时候也可以转为字符串,但在表达式的时候不可以转换。
select ename,empno from emp where ename='123';
select ename,empno from emp where ename=123;
38
数据类型的显式转换
To_char,to_date,to_number
日期转化为字符串,请说明字符串的格式。
select ename,to_char(hiredate,'yyyy/mm/dd') from emp;
select to_char(hiredate,'fmyyyy "年" mm "月"') from emp;