gpt4 book ai didi

sql-server - CASE 语句内 TSQL NVARCHAR 转换错误

转载 作者:行者123 更新时间:2023-12-02 19:05:31 28 4
gpt4 key购买 nike

这个选择让我发疯。
错误是:

Conversion error converting nvarchar value '17.30 h' to int data type.

数据是:

(DateTime)   (Nvarchar)  (DateTime)
DATAINICI DATAMANUAL DATAFI
null 17.30 h 10/01/2015
01/01/2015 20.30 h null

声明是:

CASE WHEN  dbo.Activitat.DataInici is null 
THEN DATEPART(DAY,Activitat.Datafi)
ELSE CONVERT(NVARCHAR(50), dbo.Activitat.DataManual)
END

最佳答案

由于隐式转换,您收到此错误。 CASE 的一部分返回 NVARCHAR(50),即 CONVERT(NVARCHAR(50), dbo.Activitat.DataManual),它无法转换为int 另一个返回 int,即 DATEPART(DAY,Activitat.Datafi)

类似的事情也会返回相同的错误。

SELECT CASE WHEN 1=2 THEN 1 ELSE 'errorstring' END

在这两种情况下,您都应该CONVERT并返回NVARCHAR(50),这样就不会发生隐式转换。像这样的东西。

CASE WHEN  dbo.Activitat.DataInici is null 
THEN CONVERT(NVARCHAR(50),DATEPART(DAY,Activitat.Datafi))
ELSE CONVERT(NVARCHAR(50), dbo.Activitat.DataManual)
END

关于sql-server - CASE 语句内 TSQL NVARCHAR 转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30480073/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com