Skip to content

庄朋龙的博客

有志者自有千方万计,无志者只感千难万难。

Menu
  • 首页
  • 生活
  • 创业
  • 编程
  • 运维
  • 视频课程
    • 跨境独立站
    • Shopee跨境电商
    • TEMU跨境电商
  • 资源分享
    • 网站推荐
    • 开源推荐
    • 可商用字体
    • 书籍分享
Menu

Oracle 的转换函数 隐式转换和显示转换

Posted on 2015年12月25日2025年3月4日 by 庄朋龙

oracle可以在的不同的数据类型之间完成转换,可以使用隐式转换和显示转换。

select * from emp where hiredate='17-11月-8';   --隐式转换
select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual;   --使用to_char函数进行显示转换

如果隐式转换和显示转换都可以使用,应该首选哪个呢?

※SQL优化:如果隐式、显示都可以使用,应该首选显示,可以省去Oracle的解析过程。

自动转换,前提条件是:被转换的对象是可以转换的。 (ABC→625 可以吗?) 【PPT】  24

显示转换: to_char(数据,格式)   to_number    to_date

to_char函数

select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss "今天是" day') from dual; 
 --在固定的格式里加入自定义的格式,是可以的,必须要加“”。

在屏幕上显示:2015-05-11 16:17:06 今天是 星期一

to_date函数

反向操作:已知字符串“2015-05-11 15:17:06 今天是 星期一”转化成日期

select to_date('2015-05-11 15:17:06 今天是 星期一', 'yyyy-mm-dd hh24:mi:ss "今天是" day') from dual;

to_number函数

将¥2,975.00转化成数字

select to_number('¥2,975.00', 'L9,999.99') 转成数字 from dua;

通用函数

通用函数适用于任何数据类型,包括NULL空值 

nvl2: 是nvl函数的增强版。

nvl2(a, b, c)   当a = null 返回 c, 否则返回b

使用nvl2求员工的年收入:

select empno, ename, sal, sal*12, sal * 12 + nvl2(comm, comm, 0) 年薪 from emp;

nullif: nullif(a, b) 当 a = b 时返回null, 不相等的时候返回a值。

select nullif('L9,999.99', 'L9,999.99') from dual;

coalesce: coalesce(a, b, c, …, n) 从左向右找参数中第一个不为空的值。

select comm, sal, coalesce(comm, sal) 结果值 from emp;
Category: 资源分享

全栈开发者×创业偏执狂

相信代码能改变命运,也相信凌晨四点的服务器警报里有真实的人生。

我的创业项目:
SHOPAGG / SmallShop / DigitShops / 文硕阁

© 2025 庄朋龙的博客