Sql SSRS-将varchar数据类型转换为datetime数据类型导致值超出范围。-转换为YYYY-MM-DD时

Sql SSRS-将varchar数据类型转换为datetime数据类型导致值超出范围。-转换为YYYY-MM-DD时,sql,datetime,reporting-services,Sql,Datetime,Reporting Services,我正在SSRS中运行一个查询,该查询将日期选择器日期格式默认为DD/MM/YYYY。但是,实际数据库中的日期是YYYY-MM-DD格式。我尝试按如下方式转换这些日期,但收到消息“将varchar数据类型转换为datetime数据类型导致值超出范围” 我很难弄清楚为什么会触发那个错误。Ie.22/10/2013是一个有效的日期格式,所以我认为它应该很容易转换成2013-10-2013 但我想我错过了什么 DateTime值没有格式-显示时应用格式。您应该能够将参数设置为DateTime类型,并将其

我正在SSRS中运行一个查询,该查询将日期选择器日期格式默认为DD/MM/YYYY。但是,实际数据库中的日期是YYYY-MM-DD格式。我尝试按如下方式转换这些日期,但收到消息“将varchar数据类型转换为datetime数据类型导致值超出范围”

我很难弄清楚为什么会触发那个错误。Ie.22/10/2013是一个有效的日期格式,所以我认为它应该很容易转换成2013-10-2013


但我想我错过了什么

DateTime
值没有格式-显示时应用格式。您应该能够将参数设置为
DateTime
类型,并将其传递到查询中,而不进行任何字符串转换。

三个问题:数据库列是varchar还是DateTime?参数是否正确键入为日期?您的查询是否直接针对数据库工作(例如在SQL Management Studio中)?它在SSMS中也不工作-它会抛出相同的错误。该列是“datetime”,SSRS中的参数是“Date/Time”,啊,是的,这基本上确定了它。我在最初将这些参数声明为字符串时出错了。即“开始日期”而不是“开始日期”。当我收到转换错误消息时,我错误地开始尝试转换日期,实际上我需要做的就是删除引用!嗯,这就是房间的问题-它试图将文本字符串
“@StartDate”
转换为日期。参数替换不仅仅是字符串替换,所以不能像那样将参数值放入字符串中。
Col1 BETWEEN convert(varchar, '22/10/2013 00:00:00', 120) AND convert(varchar, '22/10/2013 23:59:59', 120)