SQL Server:在Where子句中使用Case语句会产生错误

麦克风

我有一个动态过程,其中输入变量可以是一个日期,其对应列的格式设置为日期时间,也可以是一个字符串,其对应列的格式设置为nvarchar。

如果输入的是日期,则看起来像yyyy-mm-dd。

为了解决这个问题,我尝试将以下内容添加到我的Where子句中,但这会产生以下错误(如果我删除此行,则该过程的其余部分将按预期工作):

@searchTerm nvarchar(256) = ''

-- ...

WHERE           CASE WHEN ''' + @searchCategory + ''' <> ''dateX'' THEN
                    (A.' + @searchCategory + ' LIKE ''%' + @searchTerm + '%'')
                    ELSE
                    (A.dateX = ''' + CAST(@searchTerm AS DATETIME) + ''')
                    END

-- ...

错误:

Conversion failed when converting date and/or time from character string.

有人可以告诉我要进行这项工作我必须在此处进行更改吗?

谢谢你,迈克。

里克·S

您不能将日期时间值放入字符串中。首先将其转换为日期时间,以将其转换为所需的格式,然后将其转换为Varchar,使其可以成为动态字符串的一部分。

(A.dateX = ''' + CAST(CAST(@searchTerm AS DATETIME) AS VARCHAR(20)) + ''')

或者,如果@searchTerm已经是您想要的格式,则无需强制转换

 (A.dateX = @searchTerm)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 SQL Server 的 WHERE 子句中使用 CASE 语句

来自分类Dev

SQL在WHERE IN子句中使用CASE语句

来自分类Dev

为什么在MS SQL Server的Where子句中使用CASE语句

来自分类Dev

在SQL Server中使用case语句时Order by子句中的错误

来自分类Dev

SQL Server-在where子句中使用DATALENGTH会导致截断错误

来自分类Dev

如何在 SQL Server 数据库的 where 子句中使用基于日期获取数据的 case 语句

来自分类Dev

SQL语句where子句中的case语句

来自分类Dev

选择where子句中的SQL Server CASE语句

来自分类Dev

SQL Server:WHERE子句中具有IN条件的CASE语句

来自分类Dev

如何在SQL 2000的where子句中使用case语句

来自分类Dev

SQL查询的WHERE子句中的CASE语句

来自分类Dev

SQL:WHERE子句中的IF / CASE语句

来自分类Dev

在where子句中使用OR优化SQL语句

来自分类Dev

在where子句中使用Case结果-我想使用TorL的结果-SQL Server

来自分类Dev

在WHERE子句中使用CASE-数据参数SQL Server

来自分类Dev

嵌入在In子句中的SQL Server case语句

来自分类Dev

Where 子句中的 SQL Server 条件语句

来自分类Dev

在WHERE子句中使用SQL VIEW(错误)

来自分类Dev

有没有一种方法可以在sql中的where子句中使用case语句使用or或=?

来自分类Dev

警告:在WHERE子句中使用IN的SQL Server UPDATE

来自分类Dev

在where子句中使用位列SQL Server

来自分类Dev

如何在 SQL Server 的 where 子句中使用别名

来自分类Dev

在 SQL Server 的 WHERE 子句中使用 ROW_NUMBER()

来自分类Dev

SQL where子句中大于或小于case语句的子句

来自分类Dev

在 SQL Server 的 case 语句中使用 set

来自分类Dev

SQL查询:在WHERE子句中使用AND / OR

来自分类Dev

在where子句中使用别名-SQL

来自分类Dev

在Spark SQL的'WHERE'子句中使用'as'

来自分类Dev

我的SQL查询:错误:在WHERE子句中使用CASE WHEN时,字段列表中的未知列

Related 相关文章

  1. 1

    在 SQL Server 的 WHERE 子句中使用 CASE 语句

  2. 2

    SQL在WHERE IN子句中使用CASE语句

  3. 3

    为什么在MS SQL Server的Where子句中使用CASE语句

  4. 4

    在SQL Server中使用case语句时Order by子句中的错误

  5. 5

    SQL Server-在where子句中使用DATALENGTH会导致截断错误

  6. 6

    如何在 SQL Server 数据库的 where 子句中使用基于日期获取数据的 case 语句

  7. 7

    SQL语句where子句中的case语句

  8. 8

    选择where子句中的SQL Server CASE语句

  9. 9

    SQL Server:WHERE子句中具有IN条件的CASE语句

  10. 10

    如何在SQL 2000的where子句中使用case语句

  11. 11

    SQL查询的WHERE子句中的CASE语句

  12. 12

    SQL:WHERE子句中的IF / CASE语句

  13. 13

    在where子句中使用OR优化SQL语句

  14. 14

    在where子句中使用Case结果-我想使用TorL的结果-SQL Server

  15. 15

    在WHERE子句中使用CASE-数据参数SQL Server

  16. 16

    嵌入在In子句中的SQL Server case语句

  17. 17

    Where 子句中的 SQL Server 条件语句

  18. 18

    在WHERE子句中使用SQL VIEW(错误)

  19. 19

    有没有一种方法可以在sql中的where子句中使用case语句使用or或=?

  20. 20

    警告:在WHERE子句中使用IN的SQL Server UPDATE

  21. 21

    在where子句中使用位列SQL Server

  22. 22

    如何在 SQL Server 的 where 子句中使用别名

  23. 23

    在 SQL Server 的 WHERE 子句中使用 ROW_NUMBER()

  24. 24

    SQL where子句中大于或小于case语句的子句

  25. 25

    在 SQL Server 的 case 语句中使用 set

  26. 26

    SQL查询:在WHERE子句中使用AND / OR

  27. 27

    在where子句中使用别名-SQL

  28. 28

    在Spark SQL的'WHERE'子句中使用'as'

  29. 29

    我的SQL查询:错误:在WHERE子句中使用CASE WHEN时,字段列表中的未知列

热门标签

归档