ITPub博客

首页 > 数据库 > Oracle > 【转自博客园】 oracle to char函数种种

【转自博客园】 oracle to char函数种种

Oracle 作者:lixingang 时间:2013-12-08 12:47:56 0 删除 编辑

专客园的节操实是破碎摧誉性骨折状态啊...完全找没有到转载选项,收躲还要先注册..擦擦擦擦擦

-----------------------------

Oracle to_char把戏化函数>

Postgres 把戏化函数提供一套有效的对象用于把各类数据范例(日期/时候,int,float,numeric)转换成把戏化的字符串和反过来从把戏化的字符串转换本钱始的数据范例。
重视:扫数把戏化函数的第两个参数是用于转换的模板。
表 5-7. 把戏化函数
 
函数 返回 描述 例子
>to_char(timestamp, text) text 把 timestamp 转换成 string to_char(timestamp "now","HH12:MI:SS")
to_char(int, text) text 把 int4/int8 转换成 string to_char(125, "999")
to_char(float, text) text 把 float4/float8 转换成 string to_char(125.8, "999D9")
to_char(numeric, text) text 把 numeric 转换成 string to_char(numeric "-125.8", "999D99S")
to_date(text, text) date 把 string 转换成 date to_date("05 Dec 2000", "DD Mon YYYY")
to_timestamp(text, text) date 把 string 转换成 timestamp to_timestamp("05 Dec 2000", "DD Mon YYYY")
to_number(text, text) numeric 把 string 转换成 numeric to_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 位)
J Julian 日期(自公元前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"

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/78848/viewspace-1115182/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论