Запрос с регистром не работает из-за проблемы с датой. Искал на форуме, но не могу найти конкретный ответ, который мне помогает. мой случай всегда переходит к остальной части. часть когда, кажется, не работает из-за плохого формата даты. einddatum
(= конечная дата) и vorigeeinddatum
(= предыдущая конечная дата) равны varchar()
. Я использую str_to_date
, чтобы конвертировать их.
select gezinssamenstelling , count(*) as aantal ,
case einddatum
when str_to_date(einddatum , '%d/%m/%Y') > date('28/2/2020' , '%d/%m/%Y') THEN datediff(str_to_date(einddatum , '%d/%m/%Y') , str_to_date(vorigeeinddatum , '%d/%m/%Y') )-365
else datediff(str_to_date(einddatum , '%d/%m/%Y') , str_to_date(vorigeeinddatum , '%d/%m/%Y') )-366
end as dagenuitstel from vv20199
where status = "5.geboekt"
group by gezinssamenstelling , dagenuitstel;
Мой код имел обыкновение давать результат, но всегда -366 дней, поэтому замечание пропускает предложение when. Я попробовал некоторые исправления, но теперь я получаю:
ошибка 1064: синтаксическая проблема в 'where'