SQL单行函数-转换函数
ORACLE数据库之中的三种数据:数字(NUMBER)、字符串(VARCHAR2)、日期(DATE),转换函数的主要功能是完成这几种数据间的互相转换的操作,一共有3种转换函数:
1)TO_CHAR(字符串|列,格式字符串):将日期或者是数字变为字符串显示;
2)TO_DATE(字符串,格式字符串):将字符串变为DATE数据显示;
3)TO_NUMBER(字符串):将字符串变为数字显示;
1.TO_CHAR()函数
SQL> SELECT SYSDATE FROM dual;
SYSDATE
------------------
06-JUN-12
这个时候是按照“日-月-年”的格式显示,很明显这种显示格式不符合我们正常的格式显示,我们可以使用TO_CHAR(),但是使用此函数的话需要一些格式字符串:年(yyyy),月(mm),日(dd)。
SQL> SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd'),TO_CHAR(SYSDATE,'yyyy'),TO_CHAR(SYSDATE,'mm'),TO_CHAR(SYSDATE,'dd') FROM dual;
TO_CHAR(SY TO_C TO TO
---------- ---- -- --
2012-06-06 2012 06 06
大家有没有发现显示数据之中有出现前导“0”的情况,要想去掉可以加入一个“fm”
SQL> SELECT TO_CHAR(SYSDATE,'fmyyyy-mm-dd'),TO_CHAR(SYSDATE,'yyyy'),TO_CHAR(SYSDATE,'fmmm'),TO_CHAR(SYSDATE,'fmdd') FROM dual;
TO_CHAR(SY TO_C TO TO
---------- ---- -- --
2012-6-6 2012 6 6
注意:前导“0”去掉只是好看。
我们可以有时要加上时间显示的需要如下:
SQL> SELECT TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss') FROM dual;
TO_CHAR(SYSDATE,'YY
-------------------
2012-06-06 10:21:27
注意:使用了TO_CHAR格式转换后,所有的内容全部是字符串,不在是之前的DATE型数据,TO_CHAR()函数也可以用于数字格式化上,这时每个“9”表示一位数字的概念,而不是数字9的概念;
SQL> SELECT TO_CHAR(123456789,'L999,999,999') FROM dual;
TO_CHAR(123456789,'L99
----------------------
$123,456,789
大家有没有发现我在这里加入了一个“L”【 TO_CHAR(123456789,'L999,999,999')】,L表示是LOCALE的含义,即:当前的所在语言环境的货币符号。
2.TO_DATE()函数
此函数的主要功能是将以个字符串变为DATE型数据;
SQL> SELECT TO_DATE('2012-06-06','yyyy-mm-dd') FROM dual;
TO_DATE('2012-06-0
------------------
06-JUN-12
注意:一般此函数在更新数据库的时候使用较多;
3.TO_NUMBER()函数:基本不用
TO_NUMBER()函数将字符串变为数字;
SQL> SELECT TO_NUMBER('1')+TO_NUMBER('3') FROM dual;
TO_NUMBER('1')+TO_NUMBER('3')
-----------------------------
4
但是在我们的ORACLE数据库不使用TO_NUMBER()也可以完成;
SQL> SELECT '1'+'3' FROM dual;
'1'+'3'
----------
4
所以现在的TO_NUMBER()函数基本上已经不考虑了,大家重点放在TO_CHAR()和TO_DATE()函数上。
SQL单行函数-转换函数
原创atx2418 博主文章分类:ORACLE OCA ©著作权
文章标签 SQL单行函数-转换函数 文章分类 数据库
©著作权归作者所有:来自51CTO博客作者atx2418的原创作品,谢绝转载,否则将追究法律责任
上一篇:SQL单行函数-日期函数
下一篇:SQL单行函数-通用函数

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章