0

我在尝试获取以下输出时遇到了一个问题:“如果 x_date >= now-365 then 1 else 0”

我的选择语句如下:

SELECT
   id,
   x_date,
   CASE x_date
   WHEN x_date >= addday(cast(now() as date),-365) then 1
   else 0
   end as output

我收到一条错误消息,内容如下:“SQL 错误 [30100] [HY000]: CASE 参数 case((xdate,ge,[addday(trunc(cast('date', now(), 'DATE')) ' -365')], utc_il8n), 'true', 'false') 与其余值不兼容。

有没有其他人在 CASE 语句中对日期执行过类似的操作?Addday 工作正常并返回 2017-01-05。

4

1 回答 1

0

Issue with the CASE syntax. I think reading this and other sources may have cause the confusion: https://www.techonthenet.com/sql_server/functions/case.php

Should read:

SELECT
   id,
   x_date,
   CASE WHEN x_date >= addday(cast(now() as date),-365) then 1
   else 0
   end as output
于 2018-01-05T20:54:57.597 回答