MudGuard: mysql: Designfrage / nochmal eine Rückfrage

Beitrag lesen

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