操作数类型冲突:使用CASE when并返回Column Value时,int与日期不兼容



我有一些问题。我有一些像这样的查询CASE WHEN,并得到一个错误:

操作数类型冲突:int与日期不兼容

代码:

CASE
WHEN [AVL] = 1 THEN 1
WHEN [DATE_1] IS NOT NULL THEN [DATE_1] 
WHEN [DATE_2] IS NOT NULL THEN DATEADD(DD, +2, [DATE_2])
END AS [ETA]

DATE_1DATE_2的类型为date,但当我运行此查询时,我会得到错误:

消息206,级别16,状态2,第8行
操作数类型冲突:int与日期不兼容

我希望输出列为date,或者此列将日期转换为nvarchar或字符串,就像我使用CONVERT(nvarchar, [DATE_1], 23]一样,但我也有一些类似的错误。

将nvarchar值"2021-11-06"转换为数据类型int时转换失败。

非常感谢,如果我得到答案,谢谢。

我有我的答案

因为AVL是int,我们必须

CASE
WHEN [AVL] = 1 THEN '1' --datefromparts(1900, 1, 1)
WHEN [DATE_1] IS NOT NULL THEN convert(nvarchar(10),[DATE_1])  
WHEN [DATE_2] IS NOT NULL THEN cast(DATEADD(DD,+2,[DATE]_2) as varchar)

因为我希望输出是字符串或nvarchar

最新更新