--隐式转换
--字符自动转换成数字
select '100'+'200' from dual;
--字符转换成date
select * from emp where hiredate = '23-5月 -87';--日月年,ddmmyyyy
--数字转成字符
select 100||'abc' from dual;
--日期转换成字符
select '当前时间是:'||sysdate from dual;
--显示转换
--tochar()
--tonumber()
--todate()
/*
转换函数
*/
--to_char(日期|数字,'模式'):把一个日期或者数字按照指定模式转换为字符串
SELECT '现在时间:'||to_char(sysdate,'yyyy-mm-dd') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'yyyy') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'mm') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'hh24') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'dd/mm/yyyy') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'mm/dd/yyyy hh24:mi:ss') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'yyyy-mm-dd day') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'yyyy-mm-dd d') FROM dual;--数字模式
SELECT '现在时间:'||to_char(sysdate,'year-month-ddspth day') FROM dual;--单词模式
SELECT '现在时间:'||to_char(sysdate,'yyyy"年"mm"月"dd"日"') FROM dual;--双引号转义非法日期分隔符
SELECT '现在时间:'||to_char(sysdate,'fmyyyy-mm-dd') FROM dual;--FM去掉多余的前导0或者空格
SELECT '数字:'|| to_char(&input,'fm9990.99') FROM dual;--最大4位整数,两位小数,个位数必须有一个数字
SELECT '数字:'|| to_char(&input,'fm9990.0099') FROM dual;--最大4位整数,两位小数,个位数必须有一个数字,小数必须有两位
SELECT '数字:'|| to_char(&input,'fmL9990.0099') FROM dual;--本地货币符号
SELECT '数字:'|| to_char(&input,'fmL9,990.0099') FROM dual;--千分位
--查询17号入职的员工
select substr(to_char(hiredate,'yyyy-mm-dd'),-2,2) from emp;
select * from emp where substr(to_char(hiredate,'yyyy-mm-dd'),-2,2) = '17';
select * from emp where to_char(hiredate,'dd') = 17;
--查询7月或者8月入职的员工
select * from emp where to_char(hiredate,'mm') in(12,9)
--todate()把字符转换成日期格式
--
select to_date('2016/10/17 10:28:00','yyyy/mm/dd hh24:mi:ss') from dual;
--to_date(日期字符串,'模式'):把一个日期字符串按照指定模式解析为一个日期型
--查询95年以前入职的员工
select * from emp where to_char(hiredate,'yyyy') < '95';
--计算世界末日之后过了多少天
select round(sysdate - to_date('2012-12-21','yyyy-mm-dd')) from dual;
--to_number(数字字符串,'模式'):把一个字符串解析为一个数字型
SELECT *
FROM emp
WHERE sal>to_number('$1,600','$9,999');
SELECT *
FROM emp
WHERE sal>1600
--
SELECT *
FROM emp
WHERE sal>to_number('¥1,600','L9,999');
--字符自动转换成数字
select '100'+'200' from dual;
--字符转换成date
select * from emp where hiredate = '23-5月 -87';--日月年,ddmmyyyy
--数字转成字符
select 100||'abc' from dual;
--日期转换成字符
select '当前时间是:'||sysdate from dual;
--显示转换
--tochar()
--tonumber()
--todate()
/*
转换函数
*/
--to_char(日期|数字,'模式'):把一个日期或者数字按照指定模式转换为字符串
SELECT '现在时间:'||to_char(sysdate,'yyyy-mm-dd') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'yyyy') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'mm') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'hh24') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'dd/mm/yyyy') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'mm/dd/yyyy hh24:mi:ss') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'yyyy-mm-dd day') FROM dual;
SELECT '现在时间:'||to_char(sysdate,'yyyy-mm-dd d') FROM dual;--数字模式
SELECT '现在时间:'||to_char(sysdate,'year-month-ddspth day') FROM dual;--单词模式
SELECT '现在时间:'||to_char(sysdate,'yyyy"年"mm"月"dd"日"') FROM dual;--双引号转义非法日期分隔符
SELECT '现在时间:'||to_char(sysdate,'fmyyyy-mm-dd') FROM dual;--FM去掉多余的前导0或者空格
SELECT '数字:'|| to_char(&input,'fm9990.99') FROM dual;--最大4位整数,两位小数,个位数必须有一个数字
SELECT '数字:'|| to_char(&input,'fm9990.0099') FROM dual;--最大4位整数,两位小数,个位数必须有一个数字,小数必须有两位
SELECT '数字:'|| to_char(&input,'fmL9990.0099') FROM dual;--本地货币符号
SELECT '数字:'|| to_char(&input,'fmL9,990.0099') FROM dual;--千分位
--查询17号入职的员工
select substr(to_char(hiredate,'yyyy-mm-dd'),-2,2) from emp;
select * from emp where substr(to_char(hiredate,'yyyy-mm-dd'),-2,2) = '17';
select * from emp where to_char(hiredate,'dd') = 17;
--查询7月或者8月入职的员工
select * from emp where to_char(hiredate,'mm') in(12,9)
--todate()把字符转换成日期格式
--
select to_date('2016/10/17 10:28:00','yyyy/mm/dd hh24:mi:ss') from dual;
--to_date(日期字符串,'模式'):把一个日期字符串按照指定模式解析为一个日期型
--查询95年以前入职的员工
select * from emp where to_char(hiredate,'yyyy') < '95';
--计算世界末日之后过了多少天
select round(sysdate - to_date('2012-12-21','yyyy-mm-dd')) from dual;
--to_number(数字字符串,'模式'):把一个字符串解析为一个数字型
SELECT *
FROM emp
WHERE sal>to_number('$1,600','$9,999');
SELECT *
FROM emp
WHERE sal>1600
--
SELECT *
FROM emp
WHERE sal>to_number('¥1,600','L9,999');