网站首页 > 基础教程 正文
大家好,在开始讲解t_char()、to_date()、trunc()这三个函数之前,我们首先要明白这三个函数具体的含义,了解了含义才能够更好地举一反三;
一、首先介绍to_char()函数:它可以将数值型与日期型格式转化为字符型的函数,这里需要了解为什么要对其他类型的值进行字符型转化。
to_char()函数书写格式:To_char(expr, format, nlsparam)
expr:需要进行转化的内容,即:参与到的字段内容;
format:需要进行转化成为对应的字符格式,可省略;
? nlsparam:指定format的特征,包括小数点、分隔符号等;可省略;
现在我们开始介绍如何使用该函数:
1、首先介绍如何在数值型中使用该函数,下图所示内容可以看出to_char不单单是把字段格式改变了,也可以根据自己想要的输出格式进行对应格式化处理。
select '1',TO_CHAR(25,'99.99') from dual
select '2',TO_CHAR(-25,'99.99') from dual
select '3',TO_CHAR(25,'S99.99') from dual
select '4',TO_CHAR(-25,'S99.99') from dual
select '5',TO_CHAR(25,'99.99S') from dual
select '6',TO_CHAR(-25,'99.99S') from dual
TO_CHAR(25,'99.99') 函数中出现的25为需要处理的内容,可以用字段名代替。第二个值:'99.99'则是需要格式化的规则,即小数点保留两位;
格式化内容出现了'S99.99' 则当数值为正数时展示+号,负数不影响;这样简单的格式化就实现了;
2、如果当你遇到货币值格式化时如何处理,只要你了解了规则含义,其实都是同理操作,通过给与不同的格式化规则即可实现你想要的效果。
select '1',TO_CHAR(98765432.10,'99,999,999.99') from dual
select '2',TO_CHAR(98765432.10,'FM99,999,999.99') from dual
select '3',TO_CHAR(9876543210,'$9G999G999G999') from dual
select '4',TO_CHAR(9876543210,'S$9G999G999G999') from dual
select '5',TO_CHAR(98765432.10,'$99G999G999D99') from dual
select '6',TO_CHAR(98765432.10,'FM$99G999G999D99') from dual
select '7',TO_CHAR(98765432.10,'FM$99,999,999.99') from dual
重点说明一下几个占位符含义,FM对无意义位置进行清除,即小数2位中第二位为0时则不显示;$则作为货币标识进行展示,注意:“人民币的货币标识¥不识别”;99G99D中的G代表逗号、D代表的是点。你可以在格式化中直接替代使用,结果都是一样的;
3、日期格式转化:其实他和数值、货币没有什么区别,也是通过日期格式的内容通过格式化后变成字符类型的过程:
通过下面SQL可以看出来,日期可以转化成不同的格式,也可以精确到时分秒:
select sysdate,to_char(sysdate,'yyyy-mm-dd')from dual
select sysdate,to_char(sysdate,'yyyy/mm/dd')from dual
select sysdate,to_char(sysdate,'yyyymmdd')from dual
select sysdate,to_char(sysdate,'yyyymmdd hh24:mi:ss')from dual
可以看出来通过格式化也可以直接获取某一个日期格式值中的年、月、日、时、分、秒等内容;
select '1',sysdate,to_char(sysdate,'yyyy')from dual
select '2',sysdate,to_char(sysdate,'mm')from dual
select '3',sysdate,to_char(sysdate,'hh24')from dual
select '4',sysdate,to_char(sysdate,'mi')from dual
同理,一串字符串的内容也可以转化为日期格式,只要长度符合即可格式化:
select sysdate,to_date('20230711','yyyymmdd')from dual
select sysdate,to_date('20230711','yyyy-mm-dd')from dual
select sysdate,to_date('20230711','yyyy/mm/dd')from dual
select sysdate,to_date('20230711','yyyy-mm-dd hh24:mi:ss')from dual
总体来说to_char()函数的作用不单单是把对应类型的字段转化为字符串类型,在转化过程仍可以对其内容进行内容格式化,达到最终想要的效果。合理的使用将对SQL书写提供更有力的支撑。
猜你喜欢
- 2024-12-04 MySQL表连接之驱动表与被驱动表
- 2024-12-04 SQL判断语句用法和多表查询
- 2024-12-04 MyBatisPlus又在搞事了!一个依赖轻松搞定权限问题!堪称神器
- 2024-12-04 16. WPS报表JS宏代码实现格式化显示(完结)
- 2024-12-04 MongoDB基础——常用sql语句
- 2024-12-04 数据库干货:推荐一款非常好用的 SQL Server管理工具
- 2024-12-04 一次搞定各种数据库 SQL 执行计划 | 原力计划
- 2024-12-04 MyBatisPlus又在搞事了!发布神器,一个依赖轻松搞定权限问题
- 2024-12-04 SQLynx发布3.0.0版:带来更流畅便捷的SQL开发体验
- 2024-12-04 PL/SQL设置
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)