不同数据类型之间的显式转换

Oracle提供了3个转换函数来完成不同数据类型之间的显式转换。这3个显式转换函数为:

TO_CHAR

TO_NUMBER

TO_DATE

现在我们来分别介绍这3个转换函数

TO_CHAR(日期,‘fmt’):

该函数的这种格式把日期型数据转换成变长字符串,其中,fmt为日期模式。

例4-45

sQL> SELECT ename,TO_CHAR(hiredate,'DD/MM/YY')

2 FROM emp

3 WHERE hiredate LIKE '%82';

例4-45结果

ENAME  TO_CHAR(HIREDATE

MILLER        23/01/82 

其中例4-45中的'DD/MM/YY'为日期模式,它们必须用单引号括起来。常用的日期模式还有:

YYYY:完整的年份数字表示(如2001);

YEAR:年份的英文表示(如NINETEEN EIGHTY-SEVEN);

MM:用两位数字来表示月份;

MONTH:月份完整的英文表示;

DY:用3个英文字符的缩写来表示星期几;

DAY:星期几的完整的英文表示:

DD:几号的数字表示。

可以在日期中加入字符串,但必须用双引号括起来。您还可以使用SP和TH,它们分别为数字的英文表示和数字的序数表示。

例4-46

SQL> SELECT TO_CHAR(SYSDATE,'fmDD MONTH YEAR')

2 FROM dual;

例4-46结果

TO_CHAR(SYSDATE,'FMDDMONTHYEAR')

6 MAY TWO THOUSAND TWO

在这里的fm用来压缩前导零或空格。

下面给出一个比较实际的例子。为了能在一行中显示日期数据HIREDATE,可以使用例4-47的SQL*PLUS命令将HIREDATE的输出宽度加长为60个字符。

例4-47

SQL> col hiredate for a60

之后,可以使用例4-48的查询语句以得到员工的名字(Name),工资(Salary)和雇用日期(HIREDATE)的信息。

SQL> SELECT ename "Name",sal "Salary",

2 TO CHAR(hiredate,'fmDdspth"of"Month Year fmHH:MI:SS AM')HIREDATE

3 FROM emp;

例4-48结果

Name Salary HIREDATE

SMITH 800 Seventeenth of December Nineteen Eighty 12:00:00 AM

TO_CHAR(数字,‘fmt’):

■ 该函数的这种格式把数字型数据转换成变长字符串。其中,fmt为数字模式。常用的数字模式包括:

9:一位数字;

0:显示前导零;

$:显示美元号:

L:显示本地货币号;

.:显示小数点;

,:显示千位符;

MI:在数的右边显示减号;

PR:把负数用尖括号扩起来。

SQu>SELECT enme"Name",TO_CHAR(sa1*12, '$999,999.00') "AnnuaIsalaty"

2 FROM emp;

例4-49结果

Name Annua1saIary

SMITH $9,600.00

SQL> SELECT ename "Name",TO_CHAR(sa1*12, 'L99,999.00') "Annual Salary"

2 FROM emp;

例4-50结果

Name Annual Salary

RMB9,600.00 SMITH

如果实际数据的位数超过了您在格式语句中所提供的位数,Oracle Server 又如何处理呢?可以通过例4-51的查询语句来看到Oracle Server的处理方式。

例4-51

SQL> SELECT ename "Name",TO_CHAR(sa1*12, 'L9,999.00') "Annual Salary"

2 FROM emp;

例4-51结果

Name Annual Salary

SMITH RMB9,600.00 

ALLEN #############

TO_NUMBER(字符串 [, ‘fmt]’):

该函数把字符串转换成数字。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值