Reporting services 在SSRS中设置自定义格式表达式时,月和日的名称会出现混乱

Reporting services 在SSRS中设置自定义格式表达式时,月和日的名称会出现混乱,reporting-services,Reporting Services,我的数据集有一个名为FilmReleaseDate的Datetime字段。如果我将文本框属性设置为使用一种库存日期格式格式化日期,则效果良好。但如果我选择custom并输入一个表达式,我会得到垃圾 例如,日期的实际值将是12/15/2005,如果我只想显示月份,以便输出的是“12月”,我使用以下表达式作为自定义格式:=MonthName(month(Fields!FilmReleaseDate.value)) 报告上显示的内容是Dece0ber 我还尝试了可选的布尔参数: =MonthName(

我的数据集有一个名为
FilmReleaseDate
Datetime
字段。如果我将文本框属性设置为使用一种库存日期格式格式化日期,则效果良好。但如果我选择custom并输入一个表达式,我会得到垃圾

例如,日期的实际值将是
12/15/2005
,如果我只想显示月份,以便输出的是“12月”,我使用以下表达式作为自定义格式:
=MonthName(month(Fields!FilmReleaseDate.value))

报告上显示的内容是
Dece0ber

我还尝试了可选的布尔参数:
=MonthName(月(字段!FilmReleaseDate.Value),false)

但结果是一样的

同样,当尝试仅显示一周中的某一天时

相同值
12/15/2005

表达式:
=WeekdayName(Weekday(Fields!FilmReleaseDate.Value,0),false,0)

但输出是:
T12ur015a5

不知道发生了什么事

编辑--


使用相同的表达式创建计算字段,所有内容都会正确显示。只有在“自定义格式”窗口中使用表达式时,才会出现这种情况。

自定义格式框中可以包含特定的格式/规则,类似于Excel等。当您将表达式放入其中时,它将表达式计算为
defect
,然后将
defect
转换为格式模板,并将该模板应用于2005年12月15日。所有这些加在一起最终产生了
Dece0ber

有几个选项可以满足您的需求:

  • 只需将该表达式作为文本框的值(通过编辑,您似乎通过使用计算字段获得了类似的结果)
  • 使用正确的自定义格式,从而返回月份名称。在这种情况下,在“自定义格式”框中输入的内容是
    MMMM
    (区分大小写)。我相信它提供了一个关于定制格式可能性的概述。专门用于月份名称的部分是
  • 使用第一个链接,我们可以首先找出我们是如何得到
    Dece0ber
    的。字符D、e、c、b或r没有日期/时间格式,因此它们的显示方式与原来完全相同。“m”有一种格式,它是日期时间的分钟数。我假设您的
    FilmReleaseDate
    字段只是一个日期,因此分钟数为0。因此
    Dece0ber

    同样在工作日,2005年12月15日似乎是周四。因此,自定义格式字符串是“星期四”。字符T、u、r和a没有日期/时间格式。“h”是小时(1-12),如果
    FilmReleaseDate
    只是一个日期,那么时间是午夜,所以小时是12。“s”是第二个,第二个日期也是0。“d”是天,所以我们在那里看到15。“y”是一个一位数或两位数的年份,没有前导零,所以2005年年底有5位数。把它放在一起,我们得到了
    T12ur015a5