Hallo,
so funktioniert es wohl
SELECT id, titel FROM artikel WHERE date(concat(haltbar_bis_jahr,'-',haltbar_bis_monat,'-',haltbar_bis_tag)) <= NOW() + INTERVAL 6 WEEK
Das heißt doch, such mir ALLES, was kleiner / gleich jetzt + 6 Wochen ist, richtig? Deshalb findet er auch diesen Eintrag: 01. 04. 2017
EDIT: Geht wohl doch nicht richtig, denn der Eintrag 31.02.2017 wird nicht gefunden 😕