Denodo - Невозможно зарегистрировать DATE>= addday(cast(now() как date),-365)

Я столкнулся с проблемой при попытке получить следующий вывод: "Если x_date >= now-365, то 1 еще 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 ((xdate,ge,[addday(trunc(cast('date', now(), 'DATE'))" -365')], utc_il8n), 'true', 'false') несовместимы с остальными значениями.

Кто-нибудь еще выполнял подобную операцию с датами в операторе CASE? Addday работает отлично и возвращает 2017-01-05.

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
Другие вопросы по тегам