Oracle  转换函数
在操作表中的数据时,经常需要将某个数据从一种数据类型转变为另外一种数据类型。这时就需要使用数据转换函数。例如,如果希望把表示价格的数字数据转变为字符数据,就需要使用TO_CHAR()函数。通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。
TO_CHAR()函数
TO_CHAR()函数是最常使有的转换函数,该函数可以把指定的表达式转变成字符串。TO_CHAR()函数的语法形式如下:
TO_CHAR(X[,FORMAT])
在上面的语法中,参数X表示将要转变的表达式;FORMAT参数用于指定X表达式的格式。可用的格式如表5-7所示。
表5-7  FORMAT格式参数
参数
说明
9
返回数字。如果数字是负数,则在数字前面包括负号
0
0999表示数字前面有09990表示数字后面有0
.
表示小数点的位置
,
表示在指定位置显示逗号
$
$99表示数字前面是货币符号
B
表示如果整数部分为0,则使用空格表示
C
在指定的位置使用ISO标准货币符号
D
在指定的位置返回小数点的位置
EEEE
使用科学记数法
FM
删除数字的前后空格
G
在指定的位置显示分组符号
L
在指定的位置显示本地货币符号
MI
负数的尾部有负号,正数的尾部有空格
PR
负数的尾部有三角括号“<>”,正数的头部和尾部有空格
RN/rn
返回罗马数字,RN表示大写罗马数字,rn表示小写罗马数字。数字必是13999之间的整数
S
S999表示负数的前面有负号,正数的前面有正号。999S表示负数的后面有号,正数的后面有正号
TM
使用最小的字符数返回数字
U
在指定位置返回双货币号
V
返回一个数字乘以10^n移动指定位(小数)
X
返回十六进制数字
HHHH12
一天的小时数(01-12
HH24
oracle切割字符串函数
一天的小时数(00-23
MI
分钟 00-59
SS
秒(00-59
MS
毫秒(000-999
US
微秒(000000-999999
AM A.M. PM P.M.
正午标识(大写)
am a.m. pm p.m
正午标识(小写)
YYYY
4位年号
YY
年的后两位
BC B.C. AD A.D
纪元标识(大写)
bc b.c. ad a.d
纪元标识(小写)
MONTH/month
/小写表示的月份名
MM
月份号(01-12
DAY/day
/小写全长日期名(空白填充为9字符)
例如,下面的示例使用TO_CHAR()函数将当前系统时间按指定格式转变为字符串。
SQL> select to_char(sysdate,'HH12-MI-SS') 时间 from dual;
时间
--------
04-50-02
TO_DATE()函数
该函数将字符串转化为Oracle中的一个日期。to_date()函数的语法格式如下:
TO_DATE (c[,fmt])
其中,如果参数fmt不为空时,则按照fmt中指定格式进行转换。注意这里的fmt参数,如果fmt为J则表示按照公元制转换,为C则必须为大于0并小于5373484的正整数。
例如:
SQL> select to_date(2454000, 'J') from dual;
TO_DATE(245400
--------------
21-9月 -06
SQL> select to_date('2007-9-23 23:25:00','yyyy-mm-dd hh24:mi:ss')
  2  from dual;
TO_DATE('2007-
--------------
23-9月 -07
TO_NUMBER()函数
可以使用TO_NUMBER()函数把某个表达式转变成数字。表达式的格式可以使用可选的格式描述。TO_NUMBER()函数的语法形式如下:
TO_NUMBER(c[,fmt])
例如,下面的示例使用TO_NUMBER()函数实现将16进制数转换为10进制数。
SQL> select to_number('19f','xxx'),to_number('f','xxx')
  2  from dual;
TO_NUMBER('19F','XXX')    TO_NUMBER('F','XXX')
        ----------------------          --------------------
                  415                      15

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。