日期型->字符型转换函数to_char(d [,fmt]) 函数to_char(d [,fmt])用于将日期型数值转换为字符串(varchar2类型),其中参数d用于指定日期值,fmt用于指定要转换成的字符串的格式,也称模式串。如不给出参数fmt则系统会缺省采用与所在语言环境相关的默认格式。模式串中的字母(a~z, A~Z)也称日期模式符,被保留使用——相当于关键字,其中大部分被赋予特定含义,在对日期型数字的转换/解析过程中这些模式符将被替换成相应的时间域信息,表4-5列出了常用格式符及其含义。
常用日期模式符
格式符 说明 举例
yyyy 年份 2008
mm 用数字显示月份 02
dd 在当月中是第几天 28
day 星期几 星期五
am / pm 显示上午/下午 上午
hh / hh12 / hh24 小时 / 12小时制 / 24小时制 2:30 14:30
mi 分钟 30
ss 秒钟 46

SELECT EMPNO,HIREDATE,TO_CHAR(HIREDATE),TO_CHAR(HIREDATE,'YYYY-MM-DD') FROM EMP;
EMPNO HIREDATE TO_CHAR(HIREDATE) TO_CHAR(HIREDATE,'YYYY-MM-DD')
7369 1980/12/17 17-DEC-80 1980-12-17
7499 1981/2/20 20-FEB-81 1981-02-20
7521 1981/2/22 22-FEB-81 1981-02-22
7566 1981/4/2 02-APR-81 1981-04-02
7654 1981/9/28 28-SEP-81 1981-09-28
7698 1981/5/1 01-MAY-81 1981-05-01
7782 1981/6/9 09-JUN-81 1981-06-09
7788 1987/4/19 19-APR-87 1987-04-19
7839 1981/11/17 17-NOV-81 1981-11-17
7844 1981/9/8 08-SEP-81 1981-09-08
7876 1987/5/23 23-MAY-87 1987-05-23
7900 1981/12/3 03-DEC-81 1981-12-03
7902 1981/12/3 03-DEC-81 1981-12-03
7934 1982/1/23 23-JAN-82 1982-01-23

SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH:MI:SS') FROM DUAL; --2014-06-14 05:54:50
SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH:MI:SS') FROM DUAL; --2014/06/14 05:54:38
SELECT TO_CHAR(SYSDATE,'FMYYYY/MM/DD HH:MI:SS') FROM DUAL; --在模式串开头使用fm标记以去掉数字前面的零2014/6/14 5:55:56
SELECT TO_CHAR(SYSDATE,'YYYY "YEAR" MM "MONTH" DD "WEEK" DAY AM HH:MI:SS') FROM DUAL --2014 YEAR 06 MONTH 14 WEEK SATURDAY PM 05:59:25 --2014 YEAR 06 MONTH 14 DAY SATURDAY PM 05:59:25 --------语句中输入的是AM,结果显示为PM?Oracle会智能判断应该显示什么?

字符型->日期型转换函数to_date(char [,fmt]) 和前面的to_char()函数相对应,函数to_char(char[,fmt])用于将字符串型数值转换为日期型(DATE类型),其中参数char用于指定匹配于日期数据的字符串,模式串fmt用于指定日期模式、即按照何种模式解析前面的字符串,如不给出参数fmt则会按照当前语言环境相关的默认格式进行解析。例如:
DROP TABLE users;
CREATE TABLE users(name VARCHAR2(20), birth DATE);
INSERT INTO users VALUES('张三', '24-2月-2009');
INSERT INTO users VALUES('张三', to_date('24-2月-2009'));
INSERT INTO users VALUES('李四', to_date('2016-08-30', 'yyyy-mm-dd '));
其中,前两条INSERT语句完全等价,第一条语句中也是隐含调用了to_date()函数——先将匹配系统默认日期模式的字符串'24-2月-2009'转换为DATE类型、再执行新数据记录的插入操作。但如果字符串的格式不匹配则会出错。

数值型->字符型转换函数to_char(n [,fmt]) 函数to_char(n [,fmt])可将数字值转换为VARCHAR2型数据,通常用于数字值的格式化显示。其中参数n用于指定数字值,参数fmt用于指定转换成的格式,其性质及用法与前面的日期模式串类似,具体如表4-6所示。
表4-6 数字模式符
格式符 说明
9 代表一位数字,忽略前导的0
0 代表一位数字,强制显示0(如果位数不足,则用0补齐)
$ 放置一个美圆符$
L 放置一个本地货币符
C 放置一个国际货币符号
. 小数点
, 千位指示符

SELECT 12345.67, TO_CHAR(12345.67) AS C1, TO_CHAR(12345.67,'$999,999.0000') AS C2, TO_CHAR(12345.67,'$000,000,0000') AS C3 FROM DUAL;
12345.67 C1 C2 C3
12345.67 12345.67 $12,345.6700 $000,001,2346

字符型->数值型转换函数to_number(char [,fmt]) 与前述的to_char(n [,fmt])相对应,函数to_number(char [,fmt])的功能则是将字符串型数值转换/解析为数值型(NUMBER类型)。其中参数char用于指定要解析的字符串,参数fmt用于指定按照字符串的格式。如不给出参数fmt则会按照当前语言环境相关的默认格式进行解析。例如:
SELECT to_number('12345.678901') FROM dual;
SELECT to_number('$12,345.6789', '$99,999.0000') FROM dual;
DROP TABLE t1;
CREATE TABLE t1(name VARCHAR2(20), sal NUMBER);
INSERT INTO t1 values('王五', to_number('$12,345.6789', '$99,999.0000'));
SELECT * FROM t1;

SQL转换函数to_char/to_date/to_number相关推荐

  1. Oracle to_char() to_date() to_number()函数

    TO_CHAR 是把日期或数字转换为字符串 TO_DATE 是把字符串转换为数据库中得日期类型转换函数 TO_NUMBER 将字符转化为数字  TO_CHAR 使用TO_CHAR函数处理数字 TO_ ...

  2. SQL 转换函数和条件表达式

    一.转换函数 函数的转换主要对数据类型的转换 包括: 隐式数据类型转换.显示数据类型转换 1.隐式转换: 在后台转换,数据类型与默认格式匹配 Oracle服务器可以在表达式中自动执行数据类型转换. 可 ...

  3. SQL转换函数(CAST 和 CONVERT)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 如果 S ...

  4. oracle中转换函数,Oracle中的转换函数

    Oracle中的转换函数有三个,分别为to_char(),to_date(),to_number() 1.to_char()的用法 格式化当前的日期时间 select sysdate,to_char( ...

  5. oracle日期转分钟,oracle日期转换函数

    与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date(''2004-11-27'', ...

  6. oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date]

    oracle.sqlserver.mysql常用函数对比[to_char.to_number.to_date] oracle   -->    mysql to_char(sysdate,'yy ...

  7. mysql to_number()函数_oracle、sqlserver、mysql常用函数对比[to_char、to_number、to_date] (转)...

    oracle --> mysql to_char(sysdate,'yyyy-mm-dd')-->date_format(sysdate(),'%Y-%m-%d'); to_date(sy ...

  8. 第140章 SQL函数 TO_CHAR(一)

    文章目录 第140章 SQL函数 TO_CHAR(一) 大纲 参数 描述 有效和无效的参数 TO_CHAR 和 TO_DATE 相关 SQL 函数 日期到字符串的转换 日期转换示例 一年中的一天 儒略 ...

  9. SQL Server(第二章) 字符串函数、日期时间函数、转换函数

    --1.CONCAT 函数:字符串连接(支持sql server2012 SQL规则 如果与NULL连接返回NILL) SELECT empid,CONCAT(firstname,lastname) ...

最新文章

  1. 基于HTML5 Canvas 实现弹出框
  2. 【Android 安全】DEX 加密 ( 代理 Application 开发 | 解压 apk 文件 | 判定是否是第一次启动 | 递归删除文件操作 | 解压 Zip 文件操作 )
  3. 总结xml配置spring-aop声明式事务配置与hibernate报错:** isno active spring和hibernate整合,原因会话工厂去路(到spring不仅仅是bean)错误
  4. position的四种属性
  5. 新浪微博搜索php待遇,新浪微博面试
  6. 同一个电脑可安装多个python版本吗_Linux下如何安装多个Python版本
  7. CentOS6安装Cisco模拟器Dynamips
  8. 日本新年传统习俗介绍(一)
  9. 哪些应用场景在使用语音连麦
  10. js数据在html乱码,通过网页查看JS源码中汉字显示乱码的解决方法
  11. 程序员必备:那些实用的Chrome扩展程序
  12. 优酷动漫押注“新国风”,能否追回被B站、腾讯赶超的那些年?
  13. 边缘计算的架构、挑战与应用
  14. 电热毯亚马逊欧洲站CE认证审核标准解析
  15. 微软云服务器AZ如何扩大磁盘
  16. Day9之深浅拷贝大法
  17. Spring Boot将端口8080重定向到8443
  18. 【Flutter脱发实录】盘一盘InheritedWidget
  19. 使用WordPress插件自动实现百度收录查询
  20. Linux下的按键驱动

热门文章

  1. tf.layers.Dense与 tf.layers.dense的区别
  2. 论初始值的重要性-仅仅是更改初始值loss差别就非常大
  3. c语言08,C语言08 -- 指针
  4. html5 水波式按钮_css3+jQuery实现按钮水波纹效果
  5. 【架构】阿里中台内容整理(部分)
  6. 【分享】老调重弹,既懂技术又懂管理的人才发展中的实际问题
  7. 8个超好用的Python内置函数
  8. Webservice入门教程_用JDK开发Webservice
  9. 春招不迷茫,模板刷题101实验室上线啦
  10. 5、Dcoker 容器数据卷用-v命令添加