我在这里创建了一个搜索SP,只是根据屏幕上的用户输入准备参数。数据类型varchar(max)和日期在add操作符中不兼容
现在,问题是,我需要投表表格列以及输入参数与DATE
类型,然后需要查询。
下面是我需要实现的程序的一部分。
问题是,现在越来越以下错误:The data types varchar(max) and date are incompatible in the add operator.
DECLARE @WhereClause VARCHAR(MAX)
DECLARE @DateField DATETIME = GETDATE()
DECLARE @DateFieldTo DATETIME = GETDATE() +1
SET @WhereClause = @WhereClause + ' AND CAST(tbl.DateField AS DATE) BETWEEN ''' + CAST(@DateField AS DATE) + ''' + AND ''' + CAST(@DateFieldTo AS DATE)+ ''
PRINT @WhereClause
可以在任何请解决这个问题。
尝试以下方法:
Error: Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
DECLARE @WhereClause VARCHAR(MAX)
DECLARE @DateField DATETIME = GETDATE()
DECLARE @DateFieldTo DATETIME = GETDATE() +1
DECLARE @YourSQLVariable VARCHAR(MAX)
SET @WhereClause = @WhereClause + ' AND CAST(tbl.DateField AS DATE) BETWEEN CAST(@DateField AS DATE) + AND CAST(@DateFieldTo AS DATE)'
SET @YourSQLVariable = 'SELECT 1 WHERE' + @WhereClause
EXEC sp_executeSQL @YourSQLVariable,N'@DateField DATETIME,@DateFieldTo DATETIME ',@DateField,@DateFieldTo
感谢
您必须先投下的部分'CAST(@DateField AS DATE)''来varchar'。 – NickyvV