[英]Date conversion error in SSRS Report
我需要使用日期参数来设计报告(需要采用英国日期格式)
原始日期格式:2007-11-30 00:00:00.000
因此,我在查询中使用了CONVERT(Date,Start_Date,103):2007-11-30。
现在,在设计报表时,我在主数据集查询中遇到此错误。
主要数据集查询:
SELECT Col1, Col2, Start_Date, Target_Date, Col3
FROM Table
WHERE (Col1 IN (@Param1))
AND (Col2IN (@Param2))
AND (Start_Date IN (@Start_Date)) AND (Target_Date IN (@Target_Date))
错误:从字符串转换日期和/或时间时转换失败
参数数据类型:日期/时间
Start_Date数据集:
SELECT Col1, Col2, Start_Date
FROM Table
WHERE (Col1 IN (@Param1)) AND (Col2 IN (@Param2))
在查询参数中,我使用以下代码:
=iif(Parameters!Start_Date.Value is nothing,"1/1/1900",Parameters!Start_Date.Value)
O / P:无错误
Target_Date数据集(我想包含开始日期为NULL的目标日期,因此使用以下查询):
SELECT Col1, Col2, Start_Date, Target_Date
FROM Table
WHERE (Col IN (@Param1)) AND (Col2 IN (@Param2)) AND (Start_Date = @Start_Date)
UNION ALL
SELECT NULL AS Expr1, NULL AS Expr2, NULL AS Expr3, Target_Date
FROM Table AS Table_1
WHERE (Department IN (@Param1)) AND (Col2 IN (@Param2)) AND (@Start_Date IS NULL)
O / P:无错误
有人可以建议我要去哪里错吗?
谢谢,方舟
假设Start_Date和Target_Date是字符串类型,则可能有一个非日期格式的值。
您可以使用ISDATE()函数对此进行测试:
SELECT DISTINCT Start_Date
FROM Table
WHERE ISDATE(Start_Date) = 0
SELECT DISTINCT Target_Date
FROM Table
WHERE ISDATE(Target_Date ) = 0
然后由您决定如何处理无效数据。 我将使用以下排除它们:
SELECT Col1, Col2, Start_Date, Target_Date, Col3
FROM Table
WHERE ISDATE(Start_Date) = 1
AND ISDATE(Target_Date ) = 1
AND Col1 IN (@Param1)
AND Col2IN (@Param2)
AND Start_Date IN (@Start_Date)
AND Target_Date IN (@Target_Date);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.