您的位置:首页 > 数据库 > Oracle

Oracle to_char格式化函数

2012-06-04 10:28 387 查看


人生旅途留下你的笔迹


专注winform,web,silverlight,wcf,web Gis应用开发

博客园

社区

首页

新随笔

联系

管理

订阅

随笔- 10 文章- 2 评论- 2


Oracle
to_char格式化函数

Postgres 格式化函数提供一套有效的工具用于把各种数据类型(日期/时间,int,float,numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成原始的数据类型。

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


函数返回描述例子
to_char(timestamp,
text)
text把 timestamp 转换成 stringto_char(timestamp 'now','HH12:MI:SS')
to_char(int, text)text把 int4/int8 转换成 stringto_char(125, '999')
to_char(float, text)text把 float4/float8 转换成 stringto_char(125.8, '999D9')
to_char(numeric, text)text把 numeric 转换成 stringto_char(numeric '-125.8', '999D99S')
to_date(text, text)date把 string 转换成 dateto_date('05 Dec 2000', 'DD Mon YYYY')
to_timestamp(text, text)date把 string 转换成 timestampto_timestamp('05 Dec 2000', 'DD Mon YYYY')
to_number(text, text)numeric把 string 转换成 numericto_number('12,454.8-', '99G999D9S')
表 5-8. 用于 date/time 转换的模板


模板描述
HH一天的小时数 (01-12)
HH12一天的小时数 (01-12)
HH24一天的小时数 (00-23)
MI分钟 (00-59)
SS秒 (00-59)
SSSS午夜后的秒 (0-86399)
AM or A.M. or PM or P.M.正午标识(大写)
am or a.m. or pm or p.m.正午标识(小写)
Y,YYY带逗号的年(4 和更多位)
YYYY年(4和更多位)
YYY年的后三位
YY年的后两位
Y年的最后一位
BC or B.C. or AD or A.D.年标识(大写)
bc or b.c. or ad or a.d.年标识(小写)
MONTH全长大写月份名(9字符)
Month全长混合大小写月份名(9字符)
month全长小写月份名(9字符)
MON大写缩写月份名(3字符)
Mon缩写混合大小写月份名(3字符)
mon小写缩写月份名(3字符)
MM月份 (01-12)
DAY全长大写日期名(9字符)
Day全长混合大小写日期名(9字符)
day全长小写日期名(9字符)
DY缩写大写日期名(3字符)
Dy缩写混合大小写日期名(3字符)
dy缩写小写日期名(3字符)
DDD一年里的日子(001-366)
DD一个月里的日子(01-31)
D一周里的日子(1-7;SUN=1)
W一个月里的周数
WW一年里的周数
CC世纪(2 位)
JJulian 日期(自公元前4712年1月1日来的日期)
Q季度
RM罗马数字的月份(I-XII;I=JAN)-大写
rm罗马数字的月份(I-XII;I=JAN)-小写
所有模板都都允许使用前缀和后缀修改器。模板里总是允许使用修改器。前缀 'FX' 只是一个全局修改器。

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


后缀描述例子
FM填充模式前缀FMMonth
TH大写顺序数后缀DDTH
th小写顺序数后缀DDTH
FX固定模式全局选项(见下面)FX Month DD Day
SP拼写模式(还未实现)DDSP
用法须知:

如果没有使用 FX 选项,to_timestamp 和 to_date 忽略空白。FX 必须做为模板里的第一个条目声明。

反斜杠("\")必须用做双反斜杠("\\"),例如 '\\HH\\MI\\SS'。

双引号('"')之间的字串被忽略并且不被分析。如果你想向输出写双引号,你必须在双引号前面放置一个双反斜杠('\\'),例如 '\\"YYYY
Month\\"'。

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

表 5-10. 用于 to_char(numeric)
的模板


模板描述
9带有指定位数的值
0前导零的值
. (句点)小数点
, (逗号)分组(千)分隔符
PR尖括号内负值
S带负号的负值(使用本地化)
L货币符号(使用本地化)
D小数点(使用本地化)
G分组分隔符(使用本地化)
MI在指明的位置的负号(如果数字 < 0)
PL在指明的位置的正号(如果数字 > 0)
SG在指明的位置的正/负号
RN罗马数字(输入在 1 和 3999 之间)
TH or th转换成序数
V移动 n 位(小数)(参阅注解)
EEEE科学记数。现在不支持。
用法须知:

使用 'SG','PL' 或 'MI' 的带符号字并不附着在数字上面;例如,to_char(-12,
'S9999') 生成 ' -12',而 to_char(-12,
'MI9999') 生成 '- 12'。Oracle 里的实现不允许在 9 前面使用 MI,而是要求 9 在 MI 前面。

PL,SG,和 TH 是 Postgres 扩展。

9 表明一个与在 9 字串里面的一样的数字位数。如果没有可用的数字,那么使用一个空白(空格)。

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

V 方便地把输入值乘以 10^n,这里 n 是跟在 V 后面的数字。to_char 不支持把 V 与一个小数点绑在一起使用(例如.
"99.9V99" 是不允许的)。

表 5-11. to_char 例子


输入输出
to_char(now(),'Day, HH12:MI:SS')'Tuesday , 05:39:18'
to_char(now(),'FMDay, HH12:MI:SS')'Tuesday, 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,'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')'<485>'
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')' 482nd'
to_char(485, '"Good number:"999')'Good number: 485'
to_char(485.8,'"Pre-decimal:"999" Post-decimal:" .999')'Pre-decimal: 485 Post-decimal: .800'
to_char(12,'99V999')' 12000'
to_char(12.4,'99V999')' 12400'
to_char(12.45, '99V9')' 125'
分类: oralce

标签: oracle
to_char

绿色通道: 好文要顶 关注我 收藏该文与我联系



洪杏不出强

关注 - 2

粉丝 - 2

+加关注

4

0

(请您对文章做出评价)

« 博主前一篇:Sybase日期函数

» 博主后一篇:DataTable缓存数据操作

posted @ 2008-11-28 15:29 洪杏不出强 阅读(32969)
评论(1) 编辑 收藏



发表评论

支持(0)反对(0)
#1楼 2012-02-23
10:47 | iReminder

很好很强大

刷新评论刷新页面返回顶部

注册用户登录后才能发表评论,请 登录注册访问网站首页。

程序员问答社区,解决您的IT难题

博客园首页博问新闻闪存程序员招聘知识库

最新IT新闻:

· 传雅虎Facebook专利案将和解
双方欲加深合作

· RIM黑莓28年成长路:败于固步自封
市值跌荡10余倍

· 集成Siri内置App
Store 苹果电视2013年开售

· 观点
iOS 6 是否需要卡片多任务?

· 创业者如何选择联合办公环境?

» 更多新闻...

最新知识库文章:

· 程序员的7个坏习惯

· 多任务让你走得更慢

· Web架构师成长之路

· 一位女性程序员的故事

· 优秀程序员的首要特性:判断力

» 更多知识库文章...





China-Pub
低价书精选

China-Pub
计算机绝版图书按需印刷服务

昵称:洪杏不出强

园龄:3年11个月

粉丝:2

关注:2

+加关注

<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456


搜索


常用链接

我的随笔

我的评论

我的参与

最新评论

我的标签

更多链接


我的标签

地图优化(3)

Datatable
操作 缓存(1)

Ext(1)

FCKeditor(1)

oracle
to_char(1)

sybase
日期函数(1)

vs2005(1)

程序人生(1)


随笔分类

asp.net技术文档(3)

Ext技术文档(1)

Gis专业知识(2)

html5(1)

oralce
(1)

supermap(1)

sybase(1)


随笔档案

2012年2月
(1)

2010年5月
(3)

2009年1月
(1)

2008年11月
(2)

2008年10月
(1)

2008年9月
(1)

2008年8月
(1)


文章分类

asp.net(1)

程序人生(1)


gis链接

海很阔,天很空。


最新评论

1.
Re:Oracle to_char格式化函数

很好很强大

--iReminder


阅读排行榜

1.
Oracle to_char格式化函数(32967)

2.
Sybase日期函数(2931)

3.
Ext.menu.Menu 属性及基础应用(1909)

4.
DataTable缓存数据操作(737)

5.
关于VS2005 无法使用切换到设计视图的解决方法(506)


评论排行榜

1.
Oracle to_char格式化函数(1)

2.
Ext.menu.Menu 属性及基础应用(1)

3.
Sybase日期函数(0)

4.
FCKeditor.NET的配置、扩展与安全性经验交流(0)

5.
关于VS2005 无法使用切换到设计视图的解决方法(0)


推荐排行榜

1.
Oracle to_char格式化函数(4)

Copyright ©2012 洪杏不出强 谨以此模板祝贺【博客园开发者征途】系列图书之《你必须知道的.net》出版发行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: