Temat: Porównywanie dat podczas użycia SELECT CASE
Witam wszystkich!Używam MySQL.
Porównuję daty.
Wszystko działa dobrze, gdy porównanie odbywa się w klauzuli WHERE.
Podczas porównywania dat przy użyciu polecenia CASE, otrzymuję wyniki, jakby
serwer SQL wogóle porównania dat nie wykonywał.
Nie mogę więc użyć SELECT CASE, gdzie przy użyciu CASE porównuje się daty.
Nie wiem dlaczego.
Czy miał ktoś podobną sytuację, a może ja gdzies popełniłem błąd ?
Poniżej zapytania, których używam:
1. Zapytanie, gdzie porównywanie dat działa:
SELECT id, DATE_FORMAT(data, '%Y-%m') AS 'data'
FROM tab
WHERE DATE_FORMAT(data, '%Y-%m') BETWEEN '2012-01' AND '2012-12'
2. Zapytanie, gdzie porównywanie dat nie działa:
SELECT id, DATE_FORMAT(data, '%Y-%m') AS 'data', CASE DATE_FORMAT(data, '%Y-%m')
WHEN DATE_FORMAT(data, '%Y-%m') > '2012-07' THEN 'nowe'
WHEN DATE_FORMAT(data, '%Y-%m') BETWEEN '2011-07' AND '2012-07' THEN 'stare'
ELSE 'inne'
END
AS 'wiek'
FROM tab
//Wynikiem zawsze jest 'inne' co nie jest zgodne z prawdą.