簡體   English   中英

操作數類型沖突:使用 CASE WHEN 並返回列值時,int 與日期不兼容

[英]Operand type clash: int is incompatible with date when using CASE WHEN and return Column Value

我有一些問題。 我有一些這樣的查詢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 層,State 2,第 8 行
操作數類型沖突:int 與日期不兼容

我希望 output 列作為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)

因為我希望 output 是字符串或 nvarchar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM