转换日期周期以显示日期格式

时间:2014-04-28 14:43:51

标签: sql reporting-services ssrs-2008

我有一个SQL查询,在下面显示yyyymm

select  ([dimdate_fact_transac_TrnServiceDtId].[date_period]) as [date_period]
from [db].[dbo].[table]

显示器:

date_period
201304
201305
201306

我如何修改,以便date_periodMMM-YY这样出现:

date_period
APR-13
MAY-13
JUN-13

我正在尝试为我的SSRS报告执行此操作,但是当我更改数字格式时,它不显示日期,这使我相信它将其作为字符串而不是日期格式发送。

请帮忙......

2 个答案:

答案 0 :(得分:2)

以下应该做:

 FORMAT(Fields!Date.Value, "MMM-yy") 

来源:here

答案 1 :(得分:1)

编辑:

SQL 2012

中添加了更清晰的版本(1a)

方法1a

对于SQL 2012您可以使用FormatDateFromParts方法

SELECT FORMAT(DATEFROMPARTS(date_period/100, date_period % 100, 1), 'MMM-yy')

方法1b

SQL 2008/2005

中处理
SELECT 
LEFT(DATENAME(MONTH, 
                 CAST(date_period AS VARCHAR(6)) + '01'
            ), 
     3) 
+ 
'-' 
+ 
RIGHT(datePART(YY, CAST(date_period AS VARCHAR(6)) + '01'
              ), 
      2) 

as myDatePeriod

方法2

在SSRS处理它

=LEFT(MonthName
          (RIGHT(Fields!D.Value,2))
      ,3) 
& "-"
& Mid(Fields!D.Value,3,2)

注意:添加额外的CRLF /空格以使代码可读