使用Oracleto_char函数方法

Oracle to_char函数的功能是将数字或日期类型为字符型。在这里,我们详细介绍了Oracle to_char功能的使用,希望能对你有帮助。

Postgres格式化功能提供了有效的工具,将各种数据类型(日期/时间,int,float,数值)为格式化的字符串,并反过来,将格式化的字符串到原始数据类型。

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

表5-7。格式化函数




功能
返回
描述
例子


to_char(时间戳、文本)
文本
将时间戳转换为字符串
to_char(timestamp'now ','hh12:MI:SS)


to_char(int,文本)
文本
转换成字符串INT4 /智力
to_char(125,'999)


to_char(浮、文本)
文本
转换成字符串float8 float4 /
to_char(125.8,'999d9)


to_char(数字、文字)
文本
将数字转换为字符串
to_char(数字125.8,'999d99s)


to_date(文本、文本)
日期
将字符串转换为日期
to_date('05月2000日,'dd周一yyyy)


to_timestamp(文本、文本)
日期
将字符串转换为时间戳
to_timestamp('05月2000日,'dd周一yyyy)


to_number(文本、文本)
数字
将字符串转换为数字
to_number('12454.8','99g999d9s)





表5-8。日期/时间转换的模板







模板
描述


HH
小时数(01-12)


hh12
小时数(01-12)


hh24
小时数(00-23)


医疗保险
分钟(00-59)


SS
二(00-59)


SSSS
秒后半夜(0-86399)


上午或上午,下午或下午
正午的符号(大写)


上午或上午,下午或下午
正午的标志(小写)


Y,YYY
逗号年(4和更多)


yyyy
年份(4个及更多)


YYY
一年中最后三个地方


YY
一年中最后两个地方


Y
最后的一年


公元前、公元前、公元或公元
年度徽标(大写)


公元前、公元前、公元或公元
年度标志(小写)



完整的首都月份名称(9个字符)



全长混合月份名(9个字符)



全长小写月份名(9个字符)


周一
大写缩写月名(3个字符)


周一
缩写混合月份名(3个字符)


周一
小写缩写的月份名(3个字符)


mm
月(01-12)



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



全长混合日期名(9字符)



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


Dy
缩写的资本日期名称(3个字符)


Dy
缩写混合日期名(3字符)


Dy
缩写小写日期名称(3字符)


DDD
今年的天(001-366)


DD
一个月的日子(01-31)


D
一周的天数(1-7;太阳= 1)


W
一个月的星期数


栈单
一年中的星期数


科科斯群岛
世纪(2)


J
朱利安(日期从1月1日,公元前4712年至今)


Q
季度


RM
罗马数字月(i-xii;我= 1)大写


RM
罗马的数月(i-xii;我= 1)-一个小写





所有模板都可以使用前缀和后缀改性剂,改性剂总是在模板允许,prefix'fx'is只是全球改性剂。

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







后缀
描述
例子


FM
填充模式前缀
fmmonth


真实航向
大写序列号后缀
ddth


TH
小写序列号后缀
ddth


FX
固定模式全局选项(见下文)
外汇日


服务提供商
拼写模式(仍然未实现)






使用说明:

如果外汇期权是没有用的,to_timestamp和to_date忽略blank.fx必须为模板中的第一项声明。
反斜杠()必须被用来做双反斜杠(),如 HH MI 学生。
双引号之间的字符串()被忽略了,没有了。如果你想写双引号的输出,你必须把一双反斜杠前面的双引号(例如,yyyy ' )月 '。
to_char支持文本没有领先的双引号,但在双引号之间的任何字符串将被处理的很快,而且不会被解释为模板的关键字(例如:你好年:yyyy)。


表5-10。is used as a template for to_char (numeric)




模板
描述



用指定数字表示的值。



前导零的值


(点)。
小数点


(逗号)
包(千)分隔符


公共关系
尖括号负值


S
带有负号(局部)。


l
货币符号(使用本地化)


D
小数点(使用本地化)


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


医疗保险
在指定的位置减去(如果数字是< 0)


PL
在指定的位置加上(如果数字> 0)


SG
在正/负的指定位置。


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


日或日
转化为序数


v
移动位(十进制)(参见注释)



科学的数量,现在不受支持。





使用说明:

使用of'sg ',' or'mi'with 'pl字符号是无法连接到上面的数字;例如,to_char(12,'s9999)产生的12,和to_char(12,'mi9999)生成的12。在Oracle实现不允许我可以用在前面9,但9的MI前。
PL,SG,和Th是Postgres的扩展。
9显示与9字符串相同的位数。如果没有可用的数字,则使用空格(空格)。
并没有将一个值小于零,也不将decimal.th是Postgres的延伸。
v方便将输入值10 ^ N,其中N是在v.to_char号码不带小数点的支持V的使用(例如,99.9v99 是不允许的)。


表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)
12


to_char(12,'fm9990999.9)
0012


to_char(485,'999)
485


to_char(485,'999)
485


to_char(485年9,9')
48 5


to_char(1485,'9999)
1485


to_char(1485,'9g999)
1 485


to_char(148.5,'999.999)
148.500


to_char(148.5,'999d999)
148500


to_char(3148.5,'9g999d999)
3 148500


to_char(485,'999s)
485 -


to_char(485,'999mi)
485 -


to_char(485,'999mi)
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)
'


to_char(485,'l999)
DM 485


to_char(485,'rn)
cdlxxxv


to_char(485,'fmrn)
cdlxxxv


to_char(5.2,'fmrn)
v


to_char(482,'999th)
第四百八十二


to_char(485,好的号码:999)
好数字:485


to_char(485.8,预十进制:999 后的十进制:。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 * /

选择to_char(1.0123)从双

/ * 123—> '123 * /

选择to_char(123)从双

然后看看下面。

我叫‘0.123',‘123'。

选择to_char(0.123)从双

以上结果,123,不是我们想要的结果,在大多数情况下,我们要的是'0.123。

让我们在to_char函数的具体用法一看。

to_char(N {,} { FMT,'nlsparam} } }

Oracle to_char功能转换的数量型向以数字格式FMT的VARCHAR2类型的值N,在数字格式的元素返回'nlsparams'specifies的特点,包括:

十进制字符

组分隔符

当地的货币符号

国际钱币的符号

变量元的形式是:

nls_numeric_characters =DGnls_currency =tcxtnls_iso_currency =领土

d是十进制字符,G是组分隔符。

例如:to_char(17145,'l099g999 ','nls_numeric_characters = ,nls_currency = 和)= nud017145

通过以上的了解,然后看看FMT的格式,我们可以使用以下的表达得到的'0.123价值:

我是0.123 * 0.123

选择to_char(0.123,'0.999)从双

我###### * / / * 100.12

选择to_char(100.12,'0.999)从双

我是1.120 * 1.12

选择to_char(1.12,'0.999)从双

0.123出局了,但前面有一个空间。

100.12个值是######,和'1.12'was '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:除了空间

9999999.0099:允许左小数点的最大位数为7,小数点右边至少2个,最多为4个,第五个数为四个到五个。

* /

选择to_char(123.0233,'fm9999999.0099)从双