我在這裏創建了一個搜索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