Skip to main content

Alles für die Homepage... Scripte, Templates, Workshops und Support

Handling von Datum und Zeit in MySQL

In diesem Artikel geht es um alles was mit Datums und Zeitwerten zusammenhängt. Beschrieben wird sowohl das einfache formatieren eines Datums sowie auch die Umwandlung einer Datumsausgabe in verschiedene deutsche Ausgabeformate.

1. Einleitung, DATE_FORMAT

Mit dem Befehl DATE_FORMAT (Datum, Formatanweisung) werden Abfrageergebnisse von DATE und DATETIME Spalten entsprechend den Erfordernissen formatiert.

Hier zunächst eine Tabelle mit den möglichen Formatstrings und dem was sie bewirken.

Formatcode Beschreibung
%a Abgekürzter Wochentagsname (Sun..Sat)
%b Abgekürzter Monatsname (Jan..Dec)
%c Monat numerisch, ohne führende Null (0..12)
%D Tag des Monats mit Englischem Suffix (0th1st2nd3rd,…)
%d Tag des Monats numerisch, mit führender Null (00..31)
%e Tag des Monats numerisch, ohne führende Null (0..31)
%f Microsekunden (000000..999999)
%H Stunden (00..23)
%h Stunden (01..12)
%I Stunden (01..12)
%i Minuten (00..59)
%j Tag des Jahres (001..366)
%k Stunden (0..23)
%l Stunden (1..12)
%M Monatsname (January..December)
%m Monat, numerisch mit führender Null (00..12)
%p AM oder PM
%r Zeit, 12 Stunden (hh:mm:ss gefolgt von AM oder PM)
%S Sekunden mit führender Null (00..59)
%s Sekunden mit führender Null (00..59)
%T Zeit (Stunden, Minuten Sekunden), 24 Stunden (hh:mm:ss)
%U Woche (00..53), wenn Sonntag der erste Tag der Woche ist
%u Woche (00..53), wenn Montag der erste Tag der Woche ist
%V Woche (01..53), wenn Sonntag der erste Tag der Woche ist, benutzt mit %X
%v Week (01..53), wenn Montag der erste Tag der Woche ist, benutzt mit %x
%W Wochentags Name (Sunday..Saturday)
%w Tag der Woche (0=Sunday..6=Saturday)
%X Jahr für die Woche wenn Sonntag der erste Tag der Woche ist, numerisch, vier Zahlen, benutzt mit %V
%x Jahr für die Woche wenn Montag der erste Tag der Woche ist, numerisch, vier Zahlen, benutzt mit %v
%Y Jahr, vier Zahlen
%y Jahr, vier Zahlen
%% Ein literales % Zeichen

 

Ein paar Beispiele für die Formatierung von DATE und DATETIME Werten
Wenn eine Uhrzeit mit ausgegeben werden soll muss das Feld natürlich auch die entsprechenden Werte mit gespeichert haben, also z.B. DATETIME oder Unix Timestamp.

CODE:
SELECT DATE_FORMAT('2007-06-28 14:23:12', '%d.%m.%Y');

Ausgabe: 28.06.2007

CODE:
SELECT DATE_FORMAT('2007-06-28 14:23:12', '%d.%m.%Y um %H:%i:%s');

Ausgabe: 28.06.2007 um 14:23:12

CODE:
SELECT DATE_FORMAT('2007-06-28 14:23:12', '%d.%m.%Y um %T');

Ausgabe: 28.06.2007 um 14:23:12

CODE:
SELECT DATE_FORMAT('2007-06-28 14:23:12', '%T');

Ausgabe: 14:23:12

Wenn anstelle eines fixen Datums, wie in den obigen Beispielen, auf eine Spalte zugegriffen werden soll wird die Abfrage so notiert:

CODE:
SELECT DATE_FORMAT(datumsspalte, '%d.%m.%Y um %T');

Liegt der Datum als Unix Timestamp vor, z.B. 1183032899 = 28.06.2007 um 14:14:59 kann man mit dem Befehl FROM_UNIXTIME den Datumswert einfach umwandeln.

CODE:
SELECT DATE_FORMAT(FROM_UNIXTIME('1183032899'), '%d.%m.%Y um %T') AS realdatum

Ausgabe: 28.06.2007 um 14:14:59

Umgekehrt wird das mit UNIX_TIMESTAMP

CODE:
SELECT UNIX_TIMESTAMP('2007-06-28 14:14:59') AS unix_sekunden

Ausgabe: 1183032899

 

Anzeige


Ähnliche Beiträge



Keine Kommentare vorhanden


Du hast eine Frage oder eine Meinung zum Artikel? Teile sie mit uns!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *