当我转换或转换字符串到日期时从sql服务器上的t-sql运行成功我的查询但是当我在报告服务上分配数据集查询时,我接受此错误。
'从字符串转换日期时转换失败。'
答案 0 :(得分:3)
这取决于您服务器上的区域设置。我想你的报告服务服务器认为几天和几个月与你的SQL服务器处于相反的位置。
在不考虑区域设置的情况下,始终正确地从字符串转换日期的最简单方法是使用军事日期格式:YYYY-MM-DD
军事格式始终正确转换。
答案 1 :(得分:3)
在DataSet属性窗口中编辑参数时,请确保不要忘记将括号放在“参数值”字段上:
这会产生转换错误:
Parameter Name Parameter Value @queryDateParameter @reportDateParameter
正确的是:
Parameter Name Parameter Value @queryDateParameter [@reportDateParameter]
答案 2 :(得分:2)
尝试通过SSRS传递参数时遇到了同样的问题。 当参数类型为文本时,SSRS使用服务器区域设置进行转换,在这种情况下,MM / DD / YYYY和DD / MM / YYYY差异导致此错误。
我的解决方案是将参数类型更改为datetime。这样可以强制正确处理转换。