FORMAT_STRING 内容 (MDX)

FORMAT_STRING 单元属性格式化 VALUE 单元属性以生成 FORMATTED_VALUE 单元属性的值。 FORMAT_STRING 单元属性可以处理字符串和数字原始值,它对该值应用格式表达式以返回 FORMATTED_VALUE 单元属性的格式化值。 下列各表详述了用于处理字符串值和数值的语法和格式字符。

字符串值

字符串的格式表达式可以是一部分,也可以是由分号 (;) 分隔开的两部分。

使用情况 结果
一个部分 格式应用于所有字符串值。
两部分 第一部分应用于字符串数据,而第二部分应用于 Null 值和零长度字符串 ("")。

下表所描述的字符可出现在字符串的格式字符串中。

字符 说明
@ 表示显示一个字符或一个空格的字符占位符。 如果字符串在格式字符串中出现 at 符号 (@) 的位置有一个字符,格式化字符串将显示该字符。 否则,格式化字符串在该位置显示一个空格。 除非格式字符串中有惊叹号 (!),否则将从右向左填充占位符。
& 表示显示一个字符或不显示任何内容的字符占位符。 如果字符串在出现“与”符号 (&) 的位置有一个字符,格式化字符串将显示该字符。 否则,格式化字符串什么也不显示。 除非格式字符串中有惊叹号 (!),否则将从右向左填充占位符。
< 强制小写。 格式化字符串以小写格式显示所有字符。
> 强制大写。 格式化字符串以大写格式显示所有字符。
! 强制从左到右填充占位符。 (默认方式是从右到左填充占位符。)

数值

数字的用户定义格式表达式可以有一到四部分(各部分之间用分号分隔)。 如果格式参数包含一个命名数字格式,则只允许有一部分。

使用情况 结果
一个部分 格式表达式应用于所有值。
两部分 第一部分应用于正值和零,第二部分应用于负值。
三部分 第一部分应用于正值,第二部分应用于负值,第三部分应用于零。
四部分 第一部分应用于正值,第二部分应用于负值,第三部分应用于零,第四部分应用于 Null 值。

下面的示例有两部分。 第一部分定义正值和零的格式,第二部分定义负值的格式。

"$#,##0;($#,##0)"  

如果包含两个连续的分号,则缺少的部分用正值的格式显示。 例如,下面的格式用第一部分的格式显示正值和负值,如果值为零,则显示“Zero”:

"$#,##0;;\Z\e\r\o"  

下表标识了可出现在数字格式的格式字符串中的字符。

字符 说明
显示不带任何格式的数字。
0 表示显示一个数字或零 (0) 的数字占位符。

如果数字在格式字符串中出现零的位置有一个数字,格式化值将显示该数字。 否则,格式化值在该位置显示零。

如果数字的位数少于格式表达式中零的个数(不管在小数点的哪一侧),格式化值将显示前导零或尾随零。

如果小数点分隔符右侧的数字位数多于格式表达式中小数点分隔符右侧的零的个数,格式化值将对数字四舍五入,使其小数位数与零的个数一样多。

如果小数点分隔符左侧的数字位数多于格式表达式中小数点分隔符左侧的零的个数,格式化值将显示多出的位数而不作任何修改。
# 表示显示一个数字或不显示任何内容的数字占位符。

如果表达式在格式字符串中出现数字符号 (#) 的位置有一个数字,格式化值将显示该数字。 否则,格式化值在该位置什么也不显示。

除了当数字的位数等于或少于格式表达式中小数点分隔符任意一侧的#字符数时不显示前导零或尾随零外,数字符号 () 占位符的作用类似于零 (0 # ) 数字占位符。
. 表示决定小数点分隔符左侧和右侧显示几位数的小数点占位符。

如果格式表达式中句点 (#.) 左侧只包含数字符号 () 字符,则小于 1 的数字以小数点分隔符开头。 若要显示用小数显示的前导零,请使用零 (0) 作为小数点分隔符左侧的第一个数字占位符。

在格式化输出中用作小数点占位符的实际字符取决于计算机系统所识别的数字格式。

注意:在某些区域设置中,用逗号作为小数点分隔符。
% 表示百分比占位符。 将表达式乘以 100, 并在格式字符串中出现百分比符号的位置插入百分比字符 (%)。
, 表示将小数点分隔符左侧具有四位或更多位数的数字中的千位和百位分隔开的千位分隔符。

如果格式包含一个由数字占位符(0#)包围的千位分隔符,则指定千位分隔符的标准用法。

两个相邻的千位分隔符,或紧接在小数点分隔符左侧的千位分隔符, (是否) 指定小数,都意味着“通过将数字除以 1000 来缩放数字,根据需要舍入”。例如,可以使用格式字符串“##0,”将 1 亿表示为 100。 小于 1,000,000 的数字显示为 0。 对于两个相邻的千位分隔符,只要不是出现在紧挨小数点分隔符的左侧,就被视为指定使用千位分隔符。

在格式化输出中用作千位分隔符的实际字符取决于计算机系统所识别的数字格式。

注意:在某些区域设置中,用句点作为千位分隔符。
: 表示时间分隔符,在设置时间值的格式时,时间分隔符用于分隔小时、分钟和秒。

注意:在某些区域设置中,可能用其他字符作为时间分隔符。

在格式化输出中用作时间分隔符的实际字符取决于计算机的系统设置。
/ 表示日期分隔符,在设置日期值的格式时,日期分隔符用于分隔年、月和日。

在格式化输出中用作日期分隔符的实际字符取决于计算机的系统设置。

注意:在某些区域设置中,可能用其他字符作为日期分隔符。
E- E+ e- e+ 表示科学记数法格式。

如果格式表达式在E-#E+ e- e+ 的右侧至少包含一个数字占位符(0 ),则以科学记数法格式显示格式化值,并在数字和其指数之间插入 E 或 e。 右侧的数字占位符的个数决定了指数中的数字个数。 使用 E 或e- 在负指数旁边包含减号。 使用 E+e+ 可包含负指数旁边的减号和正指数旁边的加号。
- + $ ( ) 显示文字字符。

若要显示所列字符以外的字符,请在该字符前面放置反斜杠 (\) ,或在) (“” 双引号中将该字符括起来。
\ 显示格式字符串中的下一个字符。

若要将具有特殊含义的字符显示为文字字符,请在该字符前加上一个反斜杠 (\)。 反斜杠本身不显示。 使用反斜杠与将下一个字符放在双引号中的作用是相同的。 若要显示反斜杠,请使用两个反斜杠 (\\)。 不能显示为文字字符的字符示例包括下列字符:

日期格式设置和时间格式字符-acdhmnpqstwy/

数字格式字符-#0、、%Ee逗号句点

字符串格式字符-@&<>
“ABC” 显示双引号 (“”) 内的字符串。

若要将字符串包含在代码内的格式中,请将文本放在 Chr(34) 之间。 (双引号的字符代码为 34。)

命名数字格式

下表标识预定义数字格式的名称:

格式名称 说明
General Number 显示不带千位分隔符的数字。
Currency 显示带千位分隔符(如果适合)的数字。 显示小数分隔符右边的两位数字。 输出基于系统区域设置。
Fixed 小数点分隔符左侧至少显示一个数字,右侧至少显示两个数字。
Standard 显示带千位分隔符的数字,其中小数点分隔符左侧至少有一个数字,右侧至少有两个数字。
Percent 将数字乘以 100 后显示,并在右侧追加百分号 (%)。 小数点分隔符右侧总是显示两个数字。
Scientific 使用标准的科学记数法。
Yes/No 如果数字为 0,则显示 No;否则显示 Yes。
True/False 如果数字为 0,则显示 False;否则显示 True。
On/Off 如果数字为 0,则显示 Off;否则显示 On。

日期值

下表标识了可以出现在日期/时间格式的格式字符串中的字符。

字符 说明
: 表示时间分隔符,在设置时间值的格式时,时间分隔符用于分隔小时、分钟和秒。

在格式化输出中用作时间分隔符的实际字符取决于计算机的系统设置。

注意:在某些区域设置中,可能用其他字符作为时间分隔符。
/ 表示日期分隔符,在设置日期值的格式时,日期分隔符用于分隔年、月和日。

在格式化输出中用作日期分隔符的实际字符取决于计算机的系统设置。

注意:在某些区域设置中,可能用其他字符表示日期分隔符。
C 按顺序将日期显示为 ddddd ,将时间显示为 ttttt

如果日期序列号没有小数部分,则只显示日期信息。 如果没有整数部分,则只显示时间信息。
d 将日期显示为不带前导零的数字 (1-31) 。
dd 将日期显示为前导零 (01-31) 的数字。
Ddd 将日显示为 Sun-Sat) (缩写。
dddd (星期日到星期六) ,将日期显示为全名。
ddddd 将日期显示为完整日期(包括日、月和年),根据用户系统的短日期格式设置进行格式化。

对于 Microsoft Windows,默认的短日期格式为 m/d/yy
dddddd 将日期序列号显示为完整日期(包括日、月和年),根据计算机系统所识别的长日期设置进行格式化。

对于 Windows,默认的长日期格式为 mmmm dd, yyyy
w 将一周中的天显示为数字(1 代表星期天,依次排列到 7,7 代表星期六)。
ww 将一年中的一周显示为数字 (1-54) 。
m 将月份显示为没有前导零的数字, (1-12) 。

如果 m 紧跟 hhh,则显示分钟而不显示月份。
mm 将月份显示为前导零 (01-12) 的数字。

如果 m 紧跟 hhh,则显示分钟而不显示月份。
mmm 将月份显示为) 年 1 月到 12 月 (缩写。
mmmm 将月份显示为) (1 月到 12 月的完整月份名称。
q 将一年中的季度显示为数字 (1-4) 。
y 将一年中的某一天显示为数字 (1-366) 。
yy 将年份显示为两位数 (00-99) 。
yyyy 将年份显示为 (100-9999) 的四位数。
h 将小时显示为不带前导零的数字 (0-23) 。
hh 将小时显示为前导零 (00-23) 的数字。
n 将分钟显示为不带前导零的数字 (0-59) 。
nn 将分钟显示为前导零 (00-59) 的数字。
s 将第二个显示为不带前导零的数字 (0-59) 。
ss 将第二个显示为前导零 (00-59) 的数字。
t t t t t 将时间显示为完整的时间(包括小时、分钟和秒),使用计算机系统所识别的时间格式定义的时间分隔符进行格式化。

如果选择了前导零选项,并且时间早于 10:00,无论是在上午 (A.M.) 还是在下午 (P.M.),都显示前导零。 例如,09:59。

对于 Windows,默认的时间格式为 h:mm:ss
AM/PM 将从午夜到正午的任何一小时与大写的 AM 一起显示,将从正午到午夜的任何一小时与大写的 PM 一起显示。

注意:使用 12 小时制时钟。
AM/PM 将从午夜到正午的任何一小时与小写的 am 一起显示,将从正午到午夜的任何一小时与小写的 pm 一起显示。

注意:使用 12 小时制时钟。
A/P 将从午夜到正午的任何一小时与大写的 A 一起显示,将从正午到午夜的任何一小时与大写的 P 一起显示。

注意:使用 12 小时制时钟。
a/p 将从午夜到正午的任何一小时与小写的 a 一起显示,将从正午到午夜的任何一小时与小写的 p 一起显示。

注意:使用 12 小时制时钟。
AMPM 将 AM 字符串文字以计算机系统定义的形式与从午夜到正午的任何一小时一起显示,将 PM 字符串文字以计算机系统定义的形式与从正午到午夜的任何一小时一起显示。

注意:使用 12 小时制时钟。

AMPM 可以是大写或小写形式,但显示的字符串的大小写应与计算机系统设置定义的字符串的大小写一致。

对于 Windows,默认的格式为 AM/PM

命名日期格式

下表标识预定义的日期格式和时间格式的名称:

格式名称 说明
General Date 显示日期和/或时间。 对于实数,显示日期和时间,例如,4/3/93 05:34 PM。 如果没有小数部分,则只显示日期,例如 4/3/93。 如果没有整数部分,则只显示时间,例如 05:34 PM。 日期显示的格式由您的系统设置决定。
Long Date 根据您的系统的长日期格式显示日期。
Medium Date 使用适合于宿主应用程序语言版本的中日期格式显示日期。
Short Date 使用您的系统的短日期格式显示日期。
Long Time 使用您的系统的长时间格式显示时间;包括小时、分钟和秒。
Medium Time 使用小时、分钟和 AM/PM 指示符以 12 小时格式显示时间。
Short Time 使用 24 小时格式显示时间,例如 17:45。

另请参阅

基于 LANGUAGE 和 FORMAT_STRING 的 FORMATED_VALUE
使用单元属性 (MDX)
创建和使用属性值 (MDX)
MDX 查询基础知识 (Analysis Services)