SSRS格式日期从YYYYMMDD到MM / DD / YYYY

时间:2015-02-13 00:30:43

标签: sql-server-2008 reporting-services

运行报告时,日期以YYYYMMDD格式显示,但我需要将其转换为格式MM/DD/YYYY

例如: 20150213 - 期待结果02/13/2015

以下表达式不起作用。建议?

=Format(Fields!InstallDate0.Value,"MM/dd/yyyy")

8 个答案:

答案 0 :(得分:6)

看起来InstallDate0是一个字符串,而不是日期。首先将其转换为日期,然后对其进行格式化:

=Format(CDate(Fields!InstallDate0.Value), "MM/dd/yyyy")

答案 1 :(得分:3)

该字段是作为DateTime字段存储在数据库中还是其他内容?

我将假设它不是DateTime而是整数或字符串。

假设您的列名为InstallDate0,请更改您的查询以使用此表达式(我们将假设源表具有别名T1):

InstallDate0 = CONVERT(datetime, CONVERT(varchar(8), T1.InstallDate0), 112)

这会将您的字符串(或int)作为DateTime返回。您现在可以使用SSRS的格式化功能:

=Format(Fields!InstallDate0.Value,"MM/dd/yyyy")

答案 2 :(得分:1)

你应该可以使用:

=Format(Fields!InstallDate0.Value,"d")

如果这不起作用,我的猜测是你将日期作为字符串带入报告。您可以在SQL查询中将YYYYMMDD格式化的字符串转换为datetime:

cast(InstallDate0 as datetime)

答案 3 :(得分:1)

这对我有用 -

Format(CDate(DateAdd(DateInterval.DayOfYear, 1, Now())), "MM/dd/yyyy")

要求是以MM / dd / yyyy格式获取当前日期+ 1。您可以使用字段值替换DateAdd(DateInterval.DayOfYear, 1, Now())

答案 4 :(得分:1)

我发现,您可以直接在单元格的设置中定义用户定义的设置,如下所示:

var options =  {onKeyPress: function(cep, e, field, options){
  var masks = ['00000-000', '0-00-00-00'];
    mask = (cep.length>7) ? masks[1] : masks[0];
  $('.crazy_cep').mask(mask, options);
}};

$('.crazy_cep').mask('00000-000', options);

答案 5 :(得分:0)

可以帮助某人的快速解决方案,在我的情况下,@ ian_date是一个参数,因此查询转换不适用....

当日期采用此格式时 - > yyyymmdd,我'构造'一个有效的日期字符串,右()mid()和left(),用斜杠连接,然后将其转换为日期类型,因此可以格式化。

这是表达式>>

="Date: "&format(cdate((right(Parameters!ini_date.Value,2) &"/"&mid(Parameters!ini_date.Value,5,2)&"/"&left(Parameters!ini_date.Value,4))),"MMMM dd, yyyy")

只需更换“MMMM dd,yyyy”部分,最适合您的报告。

答案 6 :(得分:0)

这可能会有所帮助。

让我们说InstallDate0 = 151116(只需用您的字段名称替换InstallDate0!)

我想转换以下151116 =>二〇一五年十一月一十六日

字符串

yyMMdd

类型为日期的

MM / dd / yyyy

表达式为: =format(CDate(Mid(Fields!InstallDate0.Value,3,2)&"/"&Right(Fields!InstallDate0.Value,2)&"/"&Left(Fields!InstallDate0.Value+20000000,4)),"MM/dd/yyyy")

如果你想做同样的事情,除了20151116 =>二〇一五年十一月一十六日

yyyy 类型为字符串的MMdd

类型为日期的

MM / dd / yyyy

表达式如下: =format(CDate(Mid(Fields!InstallDate0.Value,5,2)&"/"&Right(Fields!InstallDate0.Value,2)&"/"&Left(Fields!InstallDate0.Value,4)),"MM/dd/yyyy")

标签:如何使用SQL Server报表生成器的表达式将字符串转换为日期

答案 7 :(得分:0)

=CDATE(MID(Fields!LAST_UPD.Value,5,2) + "/" + Right(Fields!LAST_UPD.Value,2) + "/" + Left (Fields!LAST_UPD.Value,4))

不是最漂亮的解决方案,但速度很快且效果很好。