在 SSRS 中将 YYYYMM 格式化为 MMMYYYY
Formatting YYYYMM to MMMYYYY in SSRS
我想将我的一个数据字段格式化为 MMM YYYY 的日期格式。例如,如果返回“201209”,那么我希望它显示为 2012 年 9 月。在 SQL 方面,我使用 CAST 仅查看年份和月份,通常该字段看起来比如“20120914”。这是我在程序中使用的内容:
cast(left(cast(TransactionDateKey as varchar(100)), 6) as int)
在 SSRS 中,我使用以下代码:
=Format(DateValue(MonthName(Right(Fields!Month.Value, 2))
+ "," +
Left(Fields!Month.Value,4)), "Y")
但是输出是 "September 2012",我如何才能得到缩写 "Sep",而不是完整的月份名称?
另一个选项是 SQL 服务器中的 Format()
Select Format(CONVERT (date,convert(char(8),TransactionDateKey )),'MMM yyyy')
例如
Select Format(CONVERT (date,convert(char(8),20120914 )),'MMM yyyy')
-- Returns Sep 2012
我应该注意到 Format() 的性能并不出名,但确实提供了一些不错的功能
在 SSRS 中您可以使用:
=StrConv(LEFT(
MONTHNAME(REPLACE(RIGHT(Fields!Month.Value,2),"0","")),3
),vbProperCase,NOTHING) & " " & LEFT(Fields!Month.Value,4)
returns Sep 2012
201209
.
如果有帮助请告诉我。
如果您 return 在数据集中创建一个实际的 datetime
字段 - 这就是您的 TransactionDateKey
看起来是什么 - 您可以使用 SSRS 表达式完全处理格式format
:
=format(Fields!TransactionDateKey.Value,"MMM yyyy")
如果您 return 出于分组目的对您的 yyyyMM
进行分组,没有什么可以阻止您对 TransactionDateKey
本月第一天的 datetime
值进行分组在你的 SQL:
select dateadd(m,datediff(m,0,TransactionDateKey),0) as FirstDayOfTheMonth
如果你绝对需要return一个varchar
格式yyyyMM
,您可以将其转换为 MMM yyyy
,但您首先需要在表达式中将其转换为 date
- 斜杠和所有 - 在 SSRS 开始之前:
=format(cdate(left(Fields!Month.Value,4) & "/" & right(Fields!Month.Value,2) & "/01"), "MMM yyyy")
我想将我的一个数据字段格式化为 MMM YYYY 的日期格式。例如,如果返回“201209”,那么我希望它显示为 2012 年 9 月。在 SQL 方面,我使用 CAST 仅查看年份和月份,通常该字段看起来比如“20120914”。这是我在程序中使用的内容:
cast(left(cast(TransactionDateKey as varchar(100)), 6) as int)
在 SSRS 中,我使用以下代码:
=Format(DateValue(MonthName(Right(Fields!Month.Value, 2))
+ "," +
Left(Fields!Month.Value,4)), "Y")
但是输出是 "September 2012",我如何才能得到缩写 "Sep",而不是完整的月份名称?
另一个选项是 SQL 服务器中的 Format()
Select Format(CONVERT (date,convert(char(8),TransactionDateKey )),'MMM yyyy')
例如
Select Format(CONVERT (date,convert(char(8),20120914 )),'MMM yyyy')
-- Returns Sep 2012
我应该注意到 Format() 的性能并不出名,但确实提供了一些不错的功能
在 SSRS 中您可以使用:
=StrConv(LEFT(
MONTHNAME(REPLACE(RIGHT(Fields!Month.Value,2),"0","")),3
),vbProperCase,NOTHING) & " " & LEFT(Fields!Month.Value,4)
returns Sep 2012
201209
.
如果有帮助请告诉我。
如果您 return 在数据集中创建一个实际的 datetime
字段 - 这就是您的 TransactionDateKey
看起来是什么 - 您可以使用 SSRS 表达式完全处理格式format
:
=format(Fields!TransactionDateKey.Value,"MMM yyyy")
如果您 return 出于分组目的对您的 yyyyMM
进行分组,没有什么可以阻止您对 TransactionDateKey
本月第一天的 datetime
值进行分组在你的 SQL:
select dateadd(m,datediff(m,0,TransactionDateKey),0) as FirstDayOfTheMonth
如果你绝对需要return一个varchar
格式yyyyMM
,您可以将其转换为 MMM yyyy
,但您首先需要在表达式中将其转换为 date
- 斜杠和所有 - 在 SSRS 开始之前:
=format(cdate(left(Fields!Month.Value,4) & "/" & right(Fields!Month.Value,2) & "/01"), "MMM yyyy")