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