【问题标题】:Denodo - Unable to case DATE>= addday(cast(now() as date),-365)Denodo - 无法区分 DATE>= addday(cast(now() as date),-365)
【发布时间】:2018-06-15 16:35:54
【问题描述】:

我在尝试获取以下输出时遇到了问题: "如果 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。

【问题讨论】:

    标签: sql date case denodo


    【解决方案1】:

    CASE 语法问题。我认为阅读此和其他来源可能会引起混淆:https://www.techonthenet.com/sql_server/functions/case.php

    应阅读:

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

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      相关资源
      最近更新 更多