概述
本文讲解 转换函数,和编程语言类似,字符串转成数字,数字转字符串,字符串转日期,日期格式化成字符串
将 字符 转换成 数字
字符串可隐式转换成数字
select sex+1 from student
to_char
将 数字、日期 转换为 字符
语法
to_char(数字/日期)
将数字转换为货币格式
select to_char(sal,'L999,999,999') from emp;
注意:
- 9表示位置占位
- L表示人民币符号
- $表示美元符号
0补位
select to_char(sal,'000,000,000.00') from emp;
000,000,800.00
位数不够时,前面用0补位
日期转换为字符,并进行格式化
oracle数据库日期的格式是:日月年,比如:
select * from emp
中的hiredate字段,不符合中国人的习惯,需要进行对日期进行格式化
语法
to_char(列名,日期格式)
注意:
- 列名的值必须符合日期格式
常用格式:
- yyyy-mm-dd
- yyyy-mm-dd hh24
ss - yyyy/mm/dd
- yyyy/mm/dd hh24
ss - yyyy”年”mm”月”dd”日”
例子:
- 将查询入职日期的格式转为
yyyy-mm-dd格式select to_char(hiredate,'yyyy-mm-dd') from emp - 转换成中文的 yyyy年mm月dd日:
select ename,to_char(hiredate,'yyyy"年"mm"月"dd"日"') from emp - 只获取年
select to_char(hiredate,'yyyy') from emp; - 获取系统时间
返回星期
返回月select to_char(sysdate,’D’) from dual;select to_char(sysdate,’MM’) from dual;
FM消除前置的零和空格
select to_char(hiredate,'fmyyyy-mm-dd') from emp;
to_date
将 字符 转换为 日期
语法
to_date(列名,日期格式)
注意:
列名中的值必须符合日期格式
常用格式:
- yyyy-mm-dd
- yyyy-mm-dd hh24
ss - yyyy/mm/dd
- yyyy/mm/dd hh24
ss
例子
查询入职日期在1981年6月1日之后的员工信息:
错误写法:select * from emp where hiredate>'1981-6-1'正确写法:
select * from emp where hiredate>to_date('1981-06-01','yyyy-mm-dd')注意: hiredate列是日期类型,所以要将 值 转为 日期类型,再进行比较
演示
select to_date('2019-03-10 10:30:05','yyyy-mm-dd hh24
ss') from dual
练习
- 查询员工信息,聘用日期格式成:4位年-2位月-2位4日