Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql IIF和CDate在SSRS表达中出现#错误?_Sql_Reporting Services_Sql Server 2012 - Fatal编程技术网

Sql IIF和CDate在SSRS表达中出现#错误?

Sql IIF和CDate在SSRS表达中出现#错误?,sql,reporting-services,sql-server-2012,Sql,Reporting Services,Sql Server 2012,我从Reporting Services中的一个db中获取了数据,它将datetime作为一个整数,如下所示:20160511,但在某些情况下,它只是一个0。我需要一个表达式来执行以下操作:如果值为0,请输入字符串“never”,否则请将数据设置为正确的格式。 我尝试在SSRS报告中使用一个表达式,类似这样: ==IIF(Fields!name.Value=0,"never", Cdate(...)) 如果数据正确,工作正常,并显示日期,但在字段中,其中0,我得到以下错误:#错误和一些警告 如

我从Reporting Services中的一个db中获取了数据,它将datetime作为一个整数,如下所示:20160511,但在某些情况下,它只是一个0。我需要一个表达式来执行以下操作:如果值为0,请输入字符串“never”,否则请将数据设置为正确的格式。 我尝试在SSRS报告中使用一个表达式,类似这样:

==IIF(Fields!name.Value=0,"never", Cdate(...))
如果数据正确,工作正常,并显示日期,但在字段中,其中0,我得到以下错误:#错误和一些警告

如果我只是用这个:

==IIF(Fields!name.Value=0,"never", "something else")
这里是工作的真正分支,它显示了从不和其他东西字符串正确。我已经尝试了第一个代码whith what nothing date和其他代码,但是没有成功


我真的很困惑。有人知道如何修复第一个代码吗?

您应该能够在CDATE中放置另一个IIF以消除错误:

=IIF(Fields!name.Value = 0,"never", Cdate(IIF(Fields!name.Value=0, "2000-01-01", Fields!Date.Value)) )

您应该能够在CDATE中放置另一个IIF以消除错误:

=IIF(Fields!name.Value = 0,"never", Cdate(IIF(Fields!name.Value=0, "2000-01-01", Fields!Date.Value)) )

将日期转换为varchar格式,您的公式将按预期工作。您可以使用格式功能进行相同的设置。例如,如果希望输出为mm/dd/yyyy,则表达式如下所示

==IIF(Fields!name.Value=0,"never", Format(Fields!Date.Value,"MM/dd/yyyy"))

我希望这有帮助。干杯

将日期转换为varchar格式,您的公式将按预期工作。您可以使用格式功能进行相同的设置。例如,如果希望输出为mm/dd/yyyy,则表达式如下所示

==IIF(Fields!name.Value=0,"never", Format(Fields!Date.Value,"MM/dd/yyyy"))

我希望这有帮助。干杯

该列的数据类型是什么?我想知道
#Error
值是否源于将
字符串
“从不”输出到
日期时间
列中。在数据库中,它是整数,但在第二种情况下,它们写入的字符串没有问题和警告,因此我认为这不是问题。=IIF计算if语句的左侧和右侧,很可能是右侧字段无法计算时!name.Value=0。在这种情况下,您可以使用=IF来解决当前的问题,但是您的报表服务器必须是2008年或更高版本,我相信…该列的数据类型是什么?我想知道
#Error
值是否源于将
字符串
“从不”输出到
日期时间
列中。在数据库中,它是整数,但在第二种情况下,它们写入的字符串没有问题和警告,因此我认为这不是问题。=IIF计算if语句的左侧和右侧,很可能是右侧字段无法计算时!name.Value=0。在这种情况下,您可以使用=IF来解决当前的问题,但是您的报表服务器必须是2008年或更高版本,我相信。。。