使用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)从双