Необходимо указать тип DATETIME. Предполагая, что modify_date
является DATETIME YEAR TO DAY, то вам нужно написать:
SELECT CASE
WHEN <some condition>
THEN MAX(modify_date)
ELSE NULL::DATETIME YEAR TO DAY -- or CAST(NULL AS DATETIME YEAR TO DAY)
END
FROM <table>
Если modify_date
фактически DATETIME YEAR TO SECOND или что-то подобное, изменить оттенок соответственно. Тем не менее, вам необходимо <t1> TO <t2>
после DATETIME
.
В выражении CASE все еще может возникнуть проблема с «агрегатом против неагрегата». Вам может быть лучше с:
SELECT MAX(CASE
WHEN <some condition>
THEN modify_date
ELSE NULL::DATETIME YEAR TO DAY
END)
FROM <table>
Или может быть другой способ справиться с этим. Это зависит от того, что вы ожидаете от вывода. Совокупность выводит одну строку для всей таблицы; нуль - это «строка за строку» (поэтому я думаю, что будут проблемы). Вы не указываете предложение GROUP BY.