I must have a query with a dynamic where but I have a problem with the dates.
The error message is
Msg 295, Level 16, State 3, Line 45
Failed to convert a string to data type smalldatetime
Here is my procedure
CREATE OR ALTER PROCEDURE [dbo].[baro_search1]
(@name varchar(20),
@begin_date varchar(30))
AS
BEGIN
SET NOCOUNT OFF;
DECLARE @SQL VARCHAR(MAX)
DECLARE @NomFilter VARCHAR(MAX)
DECLARE @DataFilter VARCHAR(MAX)
DECLARE @all VARCHAR(2) = '1'
SET @NomFilter = CASE WHEN @name IS NULL OR @name = '' THEN '''' + @all + ''' = ''' + @all + ''''
ELSE 'Nome like ''%' + @name + '%'''
END
SET @DataFilter = CASE WHEN @begin_date IS NULL OR @begin_date = '' THEN '''' + @all + ''' = ''' + @all + ''''
ELSE 'DataConsenso = ''%' + @begin_date + '%'''
END
SET @SQL = 'SELECT \*
FROM \[dbo\].\[AnagDati\] anag
WHERE ' + @NomFilter + ''
\+ ' AND ' + @DataFilter + ''
PRINT (@SQL)
EXEC(@SQL)
END
EXEC \[dbo\].\[baro_search1\] 'name','2015-11-22 00:00:00'