日期型->字符型转换函数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. [SQL]oracle 的to_char、to_number、to_date用法

    关键字: oracle 的to_char.to_number.to_date用法 TO_CHAR 是把日期或数字转换为字符串TO_DATE 是把字符串转换为数据库中得日期类型转换函数TO_NUMBER ...

  2. Oracle SQL函数之转换函数To_char汇总

    TO_CHAR(x[[,c2],C3])[功能]将日期或数据转换为char数据类型[参数]x是一个date或number数据类型.c2为格式参数c3为NLS设置参数如果x为日期nlsparm=NLS_ ...

  3. 转换函数TO_CHAR,TO_DATE,TO_NUMBER

    TO_CHAR:将日期.数字转为字符串. TO_DATE:将字符串转为日期(注:无数字转日期). TO_NUMBER:将字符串转为数字(注:无日期转数字).此函数作用不大,算术运算时Oracel会自动 ...

  4. SQL 转换函数

    1.字符串与字符串相加 字符串相加   得到的是拼接成一列的字符串类型 例如 select name+code from car       name是nvarchar  code也是nvarchar ...

  5. SQL to_char,to_date日期字符串转换问题

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

  6. SQL 日期函数转换

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

  7. [转]SQL 常用函数及示例

    原文地址:http://www.cnblogs.com/canyangfeixue/archive/2013/07/21/3203588.html --SQL 基础-->常用函数 --===== ...

  8. SQL 常用函数及示例

    --SQL 基础-->常用函数 --================================== /* 一.函数的分类 SQL函数一般分为两种 单行函数 基于单行的处理,一行产生一个结果 ...

  9. Oracle 转换函数

    Oracle 转换函数 -- TO_CHAR(date|number {,fmt} {,nlsparams}) fmt:格式内容,返回的字符串是什么格式的,在此处指定:nlsparams:指定国家语言 ...

随机推荐

  1. DELL磁盘阵列控制卡(RAID卡)MegaCli常用管理命令汇总

    新版本的 MegaCli-1.01.24-0.i386.rpm (下载地址:http://www.lsi.com/downloads/Public/MegaRAID Common Files/8.02 ...

  2. c#geckofx文件流下载

    备注:内容仅提供参考. ⒈添加引用:using Gecko; ⒉然后根据自己的情况在某个方法内添加事件: LauncherDialog.Download += new EventHandler< ...

  3. Ehcache入门(一)——开发环境的搭建

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 那么.如何搭建Ehcache的开发环境呢? 1.下载相关的jar包,这 ...

  4. PyQt5+python3的FindDialog

    import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import Qt, pyqtSignal class FindDialog(QD ...

  5. nodejs调试

    1.通过debug命令进行调试 node debug app.js 运行的结果: 在debug状态下输入"repl"命令可以评估变量和表达式的值 按下'CTRL+C'可以退出rep ...

  6. css3 animation 动画属性简介

    animation 动画属性介绍 animation 属性是一个简写属性,用于设置动画属性: 1. animation-name----规定需要绑定到选择器的 keyframe 名称. 语法:anim ...

  7. 认识cocos2d-x jsbinding

    近年来HTML5风起云涌,特别在移动端已经被更多的人熟识.H5跨平台,在线更新等特性,被人们津津乐道.然后就出现了各种H5的框架,甚至多达100种,真是让开发者眼花缭乱,笔者作为一个从事H5游戏开发一 ...

  8. js本地存储解决方案(localStorage与userData)

    WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的user ...

  9. symfony框架在中国移动cmwap网络下访问的问题

    最近用symfony框架给手机app做后台,发现在中国移动cmwap网络下会出现问题,所有请求都路由到根路径了 左图为原始$_SERVER对象,右图为$request->server对象由于re ...

  10. liunx运维面试题汇总二

    一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统中每个文件用 i节点 来标识 ...