[英]Operand type clash: date is incompatible with int with CASE WHEN
[英]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_1
和DATE_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.