Wochentage auf Deutsch in MySQL's date_format?
Daniel
- datenbank
-1 vlad sasu0 daniel0 Tobias Kloth
0 Ilja0 Raik1 Tobias Kloth0 Ilja
Hallo alle zusammen,
Ich habe hier einen Query, mit dem ich mir gleich ein korrekt formatiertes Datum geben lasse:
<schnipp>
DATE FORMAT(reg_date,'%W, %d.%m.%y %H:%i') AS reg_date
<schnapp>
%W gibt mir einen ausgeschriebenen Wochentag zurück: Monday, Tuesday etc.
Meine Frage ist jetzt: Kann ich MySQL irgendwie dazu bringen,
mir diese Tage auf Deutsch zu liefern?
Vielen Dank für eure Hilfe im voraus,
Grüße,
Daniel
setlocale('LC_TIME','de_DE');
echo strftime('%A').', den' .date('d.m.Y H:i:s').'Uhr.';
ausgabe:
Montag, den 17.12.2004 11:40:43 Uhr
ich habe es noch nicht ausprobiert, sollte aber funktionieren, laut Internet World 01.05
setlocale('LC_TIME','de_DE');
echo strftime('%A').', den' .date('d.m.Y H:i:s').'Uhr.';
hi,
damit gibst du aber das aktuelle datum im deutschen format mit dt. wochentag aus. und zwar über php, nicht über sql.
genau das will ich aber vermeiden.
ich habe ein mysql-datetime feld YYYY-MM-DD HH:MM:SS und das soll von meinem query direkt zu WOCHENTAG, den D.M.YY formatiert werden, ohne das ich zum formatieren noch php bemühen muss.
kennt jemand diesen weg über mysql?
grüße,
daniel
Hallo,
setlocale('LC_TIME','de_DE');
echo strftime('%A').', den' .date('d.m.Y H:i:s').'Uhr.';
ich habe es noch nicht ausprobiert, sollte aber funktionieren, laut Internet World 01.05
bei mir funktioniert es zwar, php beschwert sich aber über die Anführungszeichen beim ersten Parameter von setlocale (der soll laut http://www.php.net/setlocale eine Konstante sein) - Daniel wollte aber wissen, wie man mysql die deutschen Wochentage entlocken kann ...
Grüße aus Nürnberg
Tobias
yo,
Meine Frage ist jetzt: Kann ich MySQL irgendwie dazu bringen,
mir diese Tage auf Deutsch zu liefern?
machst du die ausgabe über PHP oder direkt an einer mysql konsole ? wie auch immer ist die frage, ob du was an den einstellungen ändern kannst. wenn das nichtz der fall ist, du also kein zugriff auf die konfiguration des mysql servers hast oder der php dateien, dann bleibt dir noch die möglichkeit das "per hand" ausgeben zu lassen. dies solltest du am besten mit CASE erreichen. check mal das mysql manuell dafür.
Ilja
Hallo, Ilja!
dies solltest du am besten mit CASE erreichen.
wozu so aufwändig?
<?php
$weekday_ger = array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Sonnabend');
echo $weekday_ger[date("w")];
?>
freundl. Grüsse aus Berlin, Raik
yo,
wozu so aufwändig?
weil er es nicht mit php gelöst haben will ?
Ilja
Hallo, Ilja!
wozu so aufwändig?
weil er es nicht mit php gelöst haben will ?
ach, ich dachte, du meinst php. allerdings ist die von tobias gefundene lösung so aufwändig, wass ich trotzdem die php-lösung bevorzugen würde.
freundl. Grüsse aus Berlin, Raik
Hallo,
dies solltest du am besten mit CASE erreichen. check mal das mysql manuell dafür.
nachdem mich das auch mal interessiert hätte, habe ich mal nachgeschaut:
Die Suche nach 'case' hat http://dev.mysql.com/doc/mysql/de/Control_flow_functions.html#IDX1117 ausgespuckt - beim Basteln ist dann das rausgekommen:
SELECT
CONCAT(
CASE DATE_FORMAT([spalte],'%w')
WHEN 0 THEN 'Sonntag'
WHEN 1 THEN 'Montag'
WHEN 2 THEN 'Dienstag'
WHEN 3 THEN 'Mittwoch'
WHEN 4 THEN 'Donnerstag'
WHEN 5 THEN 'Freitag'
WHEN 6 THEN 'Samstag'
ELSE 'was anderes' END,
', den ',
DATE_FORMAT([spalte],'%d.%m.%Y')
) as datum
FROM [tabelle]
der Query spuckt datum das in der Spalte [spalte] steht in der Form
Wochentag, den DD.MM.YYYY
aus (um den Wochentag und das Datum zu verbinden war noch ein CONCAT nötig) - ich weiß allerdings nicht, inwiefern sich das auf die Geschwindigkeit der Abfrage auswirkt.
Grüße aus Nürnberg
Tobias
yo,
ich weiß allerdings nicht, inwiefern sich das auf die Geschwindigkeit der Abfrage auswirkt.
sieht doch sehr schick aus deine lösung. die geschwindigkeit wird nicht sonderlich unter den funktionen leiden. viel schlimmer sind bei datenbanken in aller regel full scans, Joins über grosse datenmengen oder bedingungen ohne einen entsprechenden index. deine lösung wirkt sich aber "nur" auf die ausgabe der daten aus, die ohnehin ausgewählt werden würde, sprich die anzahl der datensätze bleibt dadurch erhalten und sortiert werden muss dadurch auch nicht zusätzlich. alles tutti...
Ilja