Hi,
SELECT DATE(t.Start), DATE(t.End), (case when DATE(t.Start) > 2017-10-23 then DATE(t.Start) else 2017-10-23 END) as XAnfang, (case when DATE(t.End) < 2017-11-05 then DATE(t.End) else 2017-11-05 END) as XEnde FROM termine_termine t
2017 - 10 - 23 ist 1984. Soll DATE(t.start) wirklich mit 1984 verglichen werden?
Normalerweise muß man doch eine Funktion to_date (bei Oracle, wie's bei MySQL oder so heißt, weiß ich nicht) nutzen, um aus einem Datums-Literal (das dabei ein String-Literal ist) ein Datum zur Verwendung in SQL zu machen, also sowas:
case when DATE(t.Start) > to_date('2017-10-23', 'yyyy-MM-dd')
und für die anderen Datums-Werte entsprechend.
Und warum DATE(t.start)? Ist start etwa keine Datumsspalte?
XEnde "2001" kann ich auch nicht wirklich zuordnen.
2017 - 11 = 2006, 2006 - 5 ist 2001.
Hast Du doch in Deinem zweiten case when Date(t.End) so hingeschrieben: 2017-11-5, was nunmal 2001 ergibt. Simple Grundschul-Mathematik.
cu,
Andreas a/k/a MudGuard