,,Oracle to_char函数的使用方法

,,Oracle to_char函数的使用方法

在Oracle数据库中,to_char函数是我们最常用的函数之一。下面详细介绍to_char函数的应用。有兴趣的话,请看一下。

Oracle to_char函数的作用是将数字或日期类型转换为字符类型。下面详细介绍一下Oracle to_char函数的使用方法,希望对你有所帮助。

Postgres formatting函数提供了一套有效的工具,用于将各种数据类型(日期/时间、int、float、numeric)转换为格式化字符串,反之亦然。

注意:所有格式化函数的第二个参数是用于转换的模板。

表 5-7. 格式化函数

功能

返回

形容

例子

to_char(时间戳,文本)

文本

将时间戳转换为字符串

to_char(时间戳“现在”,“HH12:MI:SS”)

to_char(整数,文本)

文本

将int4/int8转换为字符串

to_char(125, '999')

to_char(浮点型,文本型)

文本

将float4/float8转换为字符串

to_char(125.8,“999D9”)

to_char(数字,文本)

文本

将数字转换为字符串

to_char(数字'-125.8 ',' 999D99S ')

截止日期(文本,文本)

日期

将字符串转换为日期

截止日期(' 2000年12月5日','年月日'

to_timestamp(文本,文本)

日期

将字符串转换为时间戳

to _ timestamp(' 2000年12月5日','年月日星期一')

收件人号码(文本,文本)

数字的

将字符串转换为数字

to_number('12,454.8-',' 99G999D9S ')

表 5-8. 用于 date/time 转换的模板

模板

形容

殿下

一天中的小时数(01-12)

HH12

一天中的小时数(01-12)

HH24

一天中的小时数(00-23)

大调音阶的第三音

分钟(00-59)

圣人

秒(00-59)

SSSS

午夜后的秒数(0-86399)

上午或上午或下午或下午

中午标志(大写)

上午或上午或下午或下午

中午标志(小写)

y,YYY

带逗号的年份(4位及以上数字)

YYYY

年份(4年及以上)

YYY

年度最后三名

YY

今年的最后两个名额

Y

最后一个进来

公元前或公元前或公元后。

年份(大写)

公元前或公元前或公元后。

年份ID(小写)

大写月份的全称(9个字符)

混合大小写的完整月份名称(9个字符)

完整的小写月份名称(9个字符)

孟族人

缩写月份名称(3个字符)

孟人

混合大小写的月份名称缩写(3个字符)

孟族人

缩写月份名称(3个字符)

abbr. 毫米(millimeter)

月份(01-12)

完整的大写日期名称(9个字符)

一天

完整长度的混合案例日期名称(9个字符)

全长小写日期名称(9个字符)

缩写日期名称(3个字符)

大小写混合的缩写日期名称(3个字符)

缩写日期名称(3个字符)

DDD

一年中的每一天(001-366)

直接伤害

一个月中的天数(01-31)

D

一周中的每一天(1-7;孙=1)

W

一个月中的周数

(同whitewater)白水

一年中的周数

抄送

世纪(第二名)

J

儒略日(自公元前4712年1月1日起的日期)

Q

四分之一

空间

罗马数字的月份(I-XII;I=Jan)-资本

空间

罗马数字的月份(I-XII;I=Jan)-小写

所有模板都允许使用前缀和后缀修饰符。模板中总是允许使用修饰符。前缀“FX”只是一个全局修饰符。

表5-9。用于日期/时间模板的后缀表 5-9. 用于日期/时间模板 to_char()

后缀

形容

例子

调频

填充模式前缀

FMMonth

泰国(Thailand)

大写后缀

DDTH

泰国(Thailand)

小写序数后缀

DDTH

效果

固定模式全局选项(见下文)

外汇月日

特殊卡

拼写模式(尚未实现)

DDSP

使用说明:

如果不使用FX选项,to_timestamp和to_date会忽略空白。必须将FX声明为模板中的第一个条目。

反斜杠(“”)必须用作双反斜杠(“\”),例如“\\HH\\MI\\SS”。

双引号(' ')之间的字符串将被忽略,不会被解析。如果要在输出中写入双引号,必须在双引号前加上一个双反斜杠(' \ \ '),例如' \'YYYY Month\ '。

to_char支持不带前导双引号(' ')的文本,但双引号之间的任何字符串都会被快速处理,并且保证不会被解释为模板关键字(例如:' ' ' Hello Year: 'YYYY ')。

表5-10。表 5-10. 用于 to_char(数字)的模板

模板

形容

具有指定位数的值。

0

前导零的值。(句号)

小数

,(逗号)

分组(千位)分隔符

一对

尖括号中的负值

S

带有负号的负值(使用本地化)

L

货币符号(使用本地化)

D

小数点(使用本地化)

G

分组分隔符(使用本地化)

大调音阶的第三音

指示位置的减号(如果数字为0)

波兰

指示位置的正号(如果数字为0)

副检察长

指示位置的加号/减号

罗马数字(输入1到3999之间的数字)

th还是TH

转换成序数

V

移动N位(小数)(见注释)

咿咿

科学计数。现在不支持。

使用说明:

使用“SG”、“PL”或“MI”的有符号单词不附加在数字上;例如,to_char(-12,' S9999 ')生成'-12 ',to_char(-12,' MI9999 ')生成'-12 '。Oracle中的实现不允许MI在9之前,但要求9在MI之前。

PL、SG和TH是Postgres的扩展名。

9表示与9字符串中相同的位数。如果没有可用的数字,则使用空格。

TH不转换小于零的值,也不转换小数。这是一个Postgres扩展。

v方便地将输入值乘以10^n,其中n是v后面的数字。to_char不支持将v绑定到小数点(例如。不允许使用99.9V99)。

表5-11。表 5-11. to_char示例

投入

输出

to_char(现在(),'日,HH12:MI:SS ')

星期二,05:39:18

to_char(现在(),' FMDay,HH12:MI:SS ')

星期二,05:39:18

to_char(-0.1,'99.99')

' -.10'

to_char(-0.1,' FM9.99 ')

'-.1'

to_char(0.1,'0.9')

' 0.1'

to_char(12,'9990999.9')

' 0012.0'

to_char(12,“FM9990999.9”)

'0012'

to_char(485,'999')

' 485'

to_char(-485,'999')

'-485'

to_char(485,'9 9 9')

' 4 8 5'

to_char(1485,'9,999')

' 1,485'

to_char(1485,“9G999”)

' 1 485'

to_char(148.5,'999.999')

' 148.500'

to_char(148.5,“999D999”)

' 148,500'

to_char(3148.5,' 9G999D999 ')

' 3 148,500'

to_char(-485,“999秒”)

'485-'

to_char(-485,' 999英里')

'485-'

to_char(485,“999英里”)

'485'

to_char(485,“PL999”)

' 485'

to_char(485,“SG999”)

' 485'

to_char(-485,' SG999 ')

'-485'

to_char(-485,' 9SG99 ')

'4-85'

to_char(-485,' 999PR ')

'485'

to_char(485,“L999”)

485德国马克

to_char(485,' RN ')

' CDLXXXV '

to_char(485,“FMRN”)

' CDLXXXV '

to_char(5.2,“FMRN”)

V

to_char(482,“第999个”)

第482次'

to_char(485,“好号码:‘999’)

好数字:485 '

to_char(485.8,“前十进制:“999”,后十进制:“0.999”)

小数点前:485小数点后: 800 '

to_char(12,“99V999”)

' 12000'

to_char(12.4,“99V999”)

' 12400'

to_char(12.45,“99V9”)

' 125'

Oracle to_char函数最简单的应用:

/*1.0123 - '1.0123'*/

从DUAL中选择TO_CHAR(1.0123)

/*123 - '123'*/

从DUAL中选择TO_CHAR(123)

接下来,看以下内容:

/*0.123 - '.123' */

SELEC TO_CHAR(0.123) FROM DUAL

上面的结果' . 123 '在大多数情况下都不是我们想要的。我们要的是‘0.123’。

我们来看看to_char函数的具体用法:

TO_CHAR ( n [,fmt [,' nlsparam']])

Oracle to_char函数将数字类型n转换为数值格式fmt的VARCHAR2类型值。“Nlsparams”以数字格式指定元素返回的字符,包括:小数点字符。组分隔符。当地硬币符号。国际硬币符号

该变量的形式为:

' NLS _数字_字符=' DG ' NLS _货币=' tcxt ' NLS _ ISO _货币=地区'

其中d是小数点字符,g是组分隔符。

示例:to _ char (17145,' l099g999 ',' nls _ numeric _ characters='。' nls _ currency=' nud'')=nud017,145

通过以上理解并查看fmt的一些格式,我们可以用下面的表达式得到‘0.123’的值:

/*0.123 - ' 0.123' */

从DUAL中选择TO_CHAR(0.123,' 0.999 ')

/*100.12 - '######' */

从DUAL中选择TO_CHAR(100.12,' 0.999 ')

/*1.12 - ' 1.120' */

从DUAL中选择TO_CHAR(1.12,' 0.999 ')

‘0.123’出来了,但是前面还有一个空格。

100.12的值是# # # #,' 1.12 '的值变成了' 1.120 '。

我们重新定义了一项新要求:

1.一片空白。

2.小数点最多4位,至少保留2位。

1 - '1.00';1.1 - '1.00';1.12 - '1.12';1.1234 - '1.1234';

1.12345 - '1.1235'

最终实现如下:

/*

FM:空格删除

999999.0099:小数点左边最大正数允许为7位,小数点右边最小数为2位,最大数为4位,第5位四舍五入。

*/

从DUAL中选择TO_CHAR(123.0233,' FM9999999.0099 ')

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码:

Copyright @ 2018-2022 盛行IT 合作邮箱: mdzz19960812@outlook.com

备案号:湘ICP备2023015575号