Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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 Server:按日期范围提取返回错误_Sql_Sql Server_Datetime_Stored Procedures_Dynamic - Fatal编程技术网

SQL Server:按日期范围提取返回错误

SQL Server:按日期范围提取返回错误,sql,sql-server,datetime,stored-procedures,dynamic,Sql,Sql Server,Datetime,Stored Procedures,Dynamic,我有一个动态存储过程,其中包括以下输入变量和Where条件,其中列R.dateRec的格式为datetime @rangeStart datetime, @rangeEnd datetime AND R.dateRec BETWEEN ' + @rangeStart + ' AND ' + @rangeEnd + ' 当我在没有此条件的情况下运行此过程时,它工作得很好,但添加此条件时,它返回以下错误,可能是因为它无法识别这些值作为日期: Conversion failed when co

我有一个动态存储过程,其中包括以下输入变量和Where条件,其中列R.dateRec的格式为datetime

@rangeStart datetime,
@rangeEnd datetime

AND   R.dateRec BETWEEN ' + @rangeStart + ' AND ' + @rangeEnd + '
当我在没有此条件的情况下运行此过程时,它工作得很好,但添加此条件时,它返回以下错误,可能是因为它无法识别这些值作为日期:

Conversion failed when converting date and/or time from character string.
有人能告诉我如何防止这种情况发生吗?该列仅包含有效日期(无空值或空值)


非常感谢,Tim。

如果是动态sql,则需要首先将日期参数转换为varchar

添加引用

{beginning of query...} + ' and R.dateRec between ''' + convert(varchar, @rangeStart, 111) + ''' and ''' + convert(varchar, @rangeEnd, 111) + ''' {continue query}'

你缺少报价吗?i、 e

   AND   R.dateRec BETWEEN ''' + @rangeStart + ''' AND ''' + @rangeEnd + '''

谢谢这是一个动态的过程,所以我不能保持这样。谢谢你的更新-这是完美的作品!SQL有时可能很挑剔。:)谢谢这不起作用,但克劳尔的解决方案解决了它。