Welcome 微信登录

首页 / 数据库 / MySQL / Oracle to_char格式化函数

Postgres格式化函数提供一套有效的工具用于把各种数据类型(日期/时间,int,float,numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成原始的数据类型。注意:所有格式化函数的第二个参数是用于转换的模板。表1. 格式化函数  
函数返回描述例子
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")
 表 2. 用于 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" 只是一个全局修改器。 表 3 用于日期/时间模板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")。 表 4 用于to_char(numeric) 的模板  
模板描述
9带有指定位数的值
0前导零的值
. (句点)小数
, (逗号)分组(千)分隔符
PR尖括号内负值
S带负号的负值(使用本地化)
L货币符号(使用本地化)
D小数点(使用本地化)
G分组分隔符(使用本地化)
MI在指明的位置的负号(如果数字 < 0)
PL在指明的位置的正号(如果数字 > 0)
SG在指明的位置的正/负号
RN罗马数字(输入在 1 和 3999 之间)
TH or th转换成序数
V移动n位(小数)(参阅注解)
EEEE科学记数。现在不支持。
NLS_NUMERIC_CHARACTERS=dgd为小数点字符,g为组分隔符
NLS_CURRENCY=com本地钱币符号
NLS_ISO_CURRENCY=$国际钱币符号
用法须知:·         使用 "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 to_char例子  
输入输出
trimto_char(0.12345,"99990.99999"))0.12345
to_char(123456.789,"L99G999G999D9999","NLS_NUMERIC_CHARACTERS=., NLS_CURRENCY=$")$123,456.7890
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"
MySQL设置唯一键PostgreSQL 的schema access denied相关资讯      Oracle函数 
  • Oracle字符串函数总结  (06月20日)
  • Oracle lag()与lead() 函数  (12/01/2015 20:41:24)
  • Oracle ascii函数  (07/26/2015 08:46:01)
  • Oracle使用简单函数  (06月09日)
  • REGEXP_SUBSTR函数的整理  (08/20/2015 20:41:01)
  • Oracle dump函数  (07/26/2015 08:40:01)
本文评论 查看全部评论 (0)
表情: 姓名: 字数