返回

sql-存储过程动态,其中包含日期

发布时间:2022-03-31 21:57:11 192
# 数据

我必须有一个带有动态where的查询,但我对日期有问题。

错误消息是

消息295,16级,状态3,第45行
无法将字符串转换为smalldatetime数据类型

这是我的程序

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'
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像
下一篇
java-jpa:无法识别存储库 2022-03-31 20:45:52