如何在SSRS中获取当前月份的名称?

15

我希望我的SSRS报告中的默认参数名称是当前月份名称。如何使用SSRS表达式获取当前月份名称?

例如,"27-09-2012" 将变为 "九月"
还有一个需求...

将 "27-09-2012" 转换为上个月的名称(八月)。

4个回答

34

第一个问题:

=MonthName(Month(Fields!datefield.Value))

第二个问题:
=MonthName(Month(DateAdd("m", -1, Today())))

我认为第二个问题的答案可能是这样的,首先将日期转换为月份,然后从月份值中减去1,然后将其转换为月份名称。
进一步阅读: OFF:我建议您更改使用的日期格式为2012-09-27,因为它适用于任何环境,并且在转换日期格式时应该让您放心。

但我不想使用(Fields!datefield.Value)。有没有办法获取日期,比如now()或getdate()... - Sandeep Pulikonda
3
请尝试使用=MonthName(Month(today()))函数,告诉我们它是否有效。我编辑了注释,为了获得当前日期,函数应该使用today()而不是now()。 - Turque
1
第二个问题:就像Sammy所说的那样,"=MonthName(Month(DateAdd(DateInterval.Month, -1, Today())))"。MonthName()真是帮了大忙。谢谢! - TamusJRoyce

6

不要减去1,因为这对一月份没有用。 请使用以下代码: MonthName(Month(DateAdd("m", -1, CDate(Today))))


2
作为注释,我尝试了=MonthName(Month(today()))的建议。无论表达式在哪个字段中,我都会得到#error。然而,=MonthName(str(Month(today())))适用于我。我不确定MonthName方法是否改变需要一个字符串或者它是否是我的程序出现了一些问题。只是想发帖提醒其他人是否也遇到了同样的问题。

0

对于上个月,我找到了通用的方法:=MonthName(Month(CDate(Today()))-1,False) 可以得到九月的全名 'OR' =MonthName(Month(CDate(Today()))-1,True) 可以得到 SEP 的缩写


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接