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

Sql server 2008 SSRS格式日期从YYYYMMDD到MM/DD/YYYY,sql-server-2008,reporting-services,Sql Server 2008,Reporting Services,运行报告时,日期以yyyyymmdd格式显示,但我需要将其转换为MM/DD/YYYY 例如:20150213-预期结果02/13/2015 下面的表达式不起作用。建议 =Format(Fields!InstallDate0.Value,"MM/dd/yyyy") 它看起来像是一个字符串,而不是日期。首先将其转换为日期,然后格式化: =Format(CDate(Fields!InstallDate0.Value), "MM/dd/yyyy") 您应该能够使用: =Format(Fields!I

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

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

下面的表达式不起作用。建议

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

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

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

您应该能够使用:

=Format(Fields!InstallDate0.Value,"d")
如果这不起作用,我猜您将把日期作为字符串带入报告中。您可以在sql查询中将
YYYYMMDD
格式的字符串强制转换为日期时间:

cast(InstallDate0 as datetime)

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

我假设它不是一个
DateTime
,而是一个整数或字符串

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

它将返回字符串(或int)作为日期时间。您现在可以使用SSRS的格式化功能:

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

快速解决方案,也许可以帮助某人,在我的例子中,@ini_date是一个参数,所以查询转换不适用

当日期采用这种格式->yyyymmdd时,我“构造”了一个有效的日期字符串,带有right()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”部分即可

这可能会有帮助

假设InstallDate0=151116(只要用您的字段名替换InstallDate0即可!)

我想转换以下151116=>11/16/2015

yyMMdd字符串类型

MM/dd/yyyy日期类型

表达方式是:
=格式(CDate(Mid(字段!InstallDate0.Value,3,2)和“/”&右侧(字段!InstallDate0.Value,2)和“/”&左侧(字段!InstallDate0.Value+20000000,4)),“MM/dd/yyyyy”)

如果您想从20151116=>11/16/2015开始执行相同操作

yyyyMMdd类型字符串

MM/dd/yyyy日期类型

表达式如下所示:
=格式(CDate(Mid(Fields!InstallDate0.Value,5,2)和“/”&右侧(Fields!InstallDate0.Value,2)和“/”&左侧(Fields!InstallDate0.Value,4)),“MM/dd/yyyyy”)

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

格式(CDate(DateAdd(DateInterval.DayOfYear,1,Now()),“MM/dd/yyyy”)


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

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

MM'/'dd'/'yyy

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

在哪里出现?在提示中还是在报告中?它怎么不起作用?它会抛出错误吗?如果不是,结果是什么?当我运行SQL查询时,结果显示“20150213”,例如。当我将其添加到SSRS时显示相同的内容。没有错误。我需要将该格式转换为2015年2月13日。@user3711442您解决问题了吗?=格式(Fields!InstallDate0.Value,“d”)——所有这些都被放在该列的所有记录中。cast(IinstallDate0作为datetime)在查询中也不起作用。我收到的错误是“从字符串转换日期和/或时间时转换失败”。能否提供sql查询?使用此表达式时,我在该列的所有记录中收到#错误。这与第一个答案类似。我没有足够的声誉来评论或提高投票率,因此我将其作为一个答案发布。
MM'/'dd'/'yyy
=CDATE(MID(Fields!LAST_UPD.Value,5,2) + "/" + Right(Fields!LAST_UPD.Value,2) + "/" + Left (Fields!LAST_UPD.Value,4))