mySQL - Werte ersetzen?

wachteldonk

Erfahrenes Mitglied
Ich habe in einer Datenbank Werte wie

Mo, Di, mi, Do u.s.w.

beim auslesen möchte ich diese automatisch umsetzen auf Montag, Dienstag, Mittwoch,..

Das würde ich gerne direkt in mysql machen bzw im Query. Wie geht sowas:)
 
Moin,

z.B. so:
Code:
SELECT CASE spaltemitwochentagsabkürzungen
WHEN "Mo" THEN "Montag" 
WHEN "Di" THEN "Dienstag"
WHEN "Mi" THEN "Mittwoch"
WHEN "Do" THEN "Donnerstag"
WHEN "Fr" THEN "Freitag"
WHEN "Sa" THEN "Samstag"
WHEN "So" THEN "Sonntag"
ELSE "komischer Tag" END as wochentagsausgabe;
 
Hallo,

eine sehr hässliche Lösung wäre folgende Abfrage:

SELECT replace(replace(replace(replace(replace(replace(replace(test, 'mo', 'Montag'), 'di', 'Dienstag'), 'mi', 'Mittwoch'), 'do', 'Donnerstag'), 'fr', 'Freitag'), 'sa', 'Samstag'), 'so', 'Sonntag')
FROM ...

Allerdings, falls du irgendwie die Möglichkeit hast diese Einträge zu manipulieren, schreibe richtige Datumswerte bzw. Timestamps rein. Die kannst du dann wunderschön mit der Funktion DATE_FORMAT ausgeben ...


Grüße
 
Moin Wachteldonk,

nix gegen 5 Zentmeter lange CASE WHEN oder REPLACE hoch 7-Blöcke, aber...

kannst Du nicht einfach die bei mySQL mitgelieferten Funktionen DayName() und MonthName() verwenden, wie es alle anderen tun?

Ggf. die Systemvariable lc_time_names auf 'de_DE' setzen.

Grüße
Biber
 
oder einfach mit switch case den gewünschten string ausgeben...

nur als beispiel
PHP:
switch ($var) {
case Mo:
   $tag = "Montag";
 break;
case Di:
   $tag = "Dienstag";
 break;
case Mi:
    $tag = "Mittwoch";
 break;
}

den wert natürlich zurück geben...
 
Zurück