# mySQL - Werte ersetzen?



## wachteldonk (5. Mai 2009)

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


----------



## Sven Mintel (5. Mai 2009)

Moin,

z.B. so:
	
	
	



```
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;
```


----------



## iphar (5. Mai 2009)

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


----------



## wachteldonk (5. Mai 2009)

Wie krieg ich den den Wochentag aus einer SQL Abfarge ? Aber in deutsch


----------



## Biber2 (5. Mai 2009)

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


----------



## Crav3X (5. Mai 2009)

oder einfach mit switch case den gewünschten string ausgeben...

nur als beispiel

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

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


----------

