Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Grundkurs 2: Aufgaben und Lösungen

Tipp zu Beispiel 7: Datum formatieren mit MySQL

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In diesem Beispiel soll ein Datum formatiert ausgegeben werden. Sehen Sie, wie Sie in MySQL dazu vorgehen müssen.

Transkript

In diesem Video möchte ich Ihnen ein paar Tipps geben, wie Sie mit MySQL Datumswerte bei der Ausgabe schöner formatieren können. Immer wieder werde ich gefragt, wie kann ich denn ein Datum oder auch einen anderen numerischen Wert bei der Ausgabe formatieren? Meine Standardantwort ist immer, eigentlich ist SQL nicht dazu da, um Formate, um Optik zu liefern, sondern um Inhalte. Für die Optik ist eigentlich das nachgelagerte, datenverarbeitende Programm des Frontend-Programm zuständig. Dort sollten Sie sich um Optik kümmern. Aber manchmal macht es dennoch Sinn, in gewissem Umfang bereits in einem SQL Statement Dinge zu formatieren und Optik anzupassen. Und das möchte ich Ihnen jetzt einmal hier am Beispiel von MySQL demonstrieren. Ich habe hier das vorige Beispiel vor mir, das Beispiel 7, wo es darum gegangen ist, einerseits aus dem Eintrittsdatum zu berechnen wie viele Monate Mitarbeiter schon im Betrieb sind, und andererseits, wann sie ihr 10jähriges Firmenjubiläum haben. Standardmäßig wird hier unter MySQL, ein Datum im ISO-Format, das heißt Jahr, Monat, Tag mit einem Bindestrich als Trennzeichen dargestellt. Da ich hier, weil wir das noch für andere Beispiele benötigen, auch die Uhrzeit beim Eintrittsdatum gespeichert habe, wird diese mit 08 Uhr ebenso angezeigt. Wie kann ich jetzt hier, zum Beispiel das, auf ein anderes Ausgabeformat bringen? Ich habe einmal die Möglichkeit, zum Beispiel mit einer Funktion, das zu erledigen. Mit der Funktion DATE_FORMAT kann ich ein Datum mit einem Format in einen entsprechenden Text umwandeln. Eines müssen wir uns allerdings bewusst sein, das was wir hier als Ergebnis erhalten, ist immer ein Text. Wenn wir also damit später vielleicht doch weiter rechnen wollen, oder Filtervorgänge durchführen wollen, müssen wir vorsichtig sein, dann dürfen wir diese Formatierung an dieser Stelle nicht vornehmen, das ist nur für die Endausgabe, für die Optik, weil das Ergebnis eben eine Text ist. Dieser darf zum Beispiel auch nicht fürs Sortieren verwendet werden, denn sonst würden wir ein unkorrektes Ergebnis bekommen. Die DATE_FORMAT Funktion bekommt als Parameter einmal das Datum, das wir formatieren wollen, in dem Fall das Eintrittsdatum. Um unsere klassische, im deutschsprachigen Raum verwendete Darstellung zu bekommen, Tag, Monat, Jahr mit jeweils einem Punkt als Trennzeichen, dazu benötigen wir unter MySQL dieses Format, das D für Tag, M für Monat und das Y für Jahr. Dieselbe Funktion habe ich auch beim Jubiläum verwendet, um für beide Varianten dieselbe Ausgabe zu erzielen. Ich führe jetzt diese Anweisung einmal aus, und betrachten wir uns das Ergebnis, hier im unterern Teil. Wir sehen jetzt hier, dass das Eintrittsdatum und auch das Jubiläum, in dieser Form hier sortiert ist. Da wir die Sortierung nach dem Eintrittsdatum vornehmen, in Form der Spalte eintritt, passt die Sortierung. Ich möchte Ihnen nur zeigen was passiert, wenn ich jetzt hier nach dem Aliasnamen, Eintrittsdatum statt der Spalte eintritt sortieren würde, dann ist das ja wie erwähnt ein Text, und wenn wir uns letztlich, ich führe die Anweisung aus, das Ergebnis anschauen, dann passt jetzt natürlich die Sortierung überhaupt nicht mehr, weil nach einem Text sortiert habe ich hier die Einser vorne, vollkommen egal welches Jahr oder Monat, dann die Zweier und so weiter. Das heißt, ich muss immer aufpassen beim Sortieren, wenn ich ein Datum in einen Text umwandele, dass ich das korrekt mache, in dem Fall über die regionale Spalte eintritt, weil dann passt das Ergebnis wieder. Manchmal möchte man zum Beispiel Monate auch im ausgeschriebener Form, also Jänner, Februar, März und so weiter angeben. Auch das kann ich entsprechend machen, mit folgender Anweisung - ich habe das jetzt hier mal vorbereitet - mit diesem Parameter kann ich das umsetzen, schauen wir uns das Ergebnis an. Was kommt jetzt hier heraus? 2. January oder second, wie ich mal sagen möchte, das passt jetzt hier gar nicht, diese quasi englisch-deutsche Mischform, aber es geht darum, wir haben jetzt hier den Monat sozusagen ausgeschrieben. January, October, August, April und so weiter. Standardmäßig habe ich das natürlich auf englisch. Was kann ich jetzt machen, wenn ich das Ganze auf deutsch haben möchte? Ich kann zum Beispiel über folgende Anweisung, die ich hier oben hingeschrieben habe, auf Session-Ebene die Spracheinstellungen für Datumswerte ändern, zum Beispiel mit der Anweisung SET lc_time_names = und dann mit dieser Form: 'de_DE' kann ich auf die deutsche Sprachvariante gehen. Also ich führe jetzt diese Anweisung einmal aus, jetzt habe ich das geändert, und jetzt noch einmal diese Anweisung, und jetzt steht hier 2. Januar, 1. Oktober, 1. August und so weiter. Aber damit wir Österreicher nicht "unter den Teppich gekehrt" werden, gibt es natürlich auch die Möglichkeit, mit deutsch-österreichischer Ausprägung, da muss ich 'de_AT' verwenden, ich zeige Ihnen den Unterschied, wenn ich das jetzt hier umstelle, und noch einmal die Anweisung ausführe, dann steht statt Januar jetzt eben hier Jänner, so wie ich es früher hier schon einmal verwendet habe, den Ausdruck in unserer Form. Um wieder zurückzugehen auf englische Einstellungen, nehme ich zum Beispiel 'en_US' als Parameter und habe dann wieder die englische Darstellungsform. Also mit dem Parameter %e kann ich hier jetzt eben den Tag, oder besser gesagt, die Nummer im Monat ohne führende Null hier bekommen, vorhin hatten wir ja D verwendet, damit hatten wir führende Nullen mit dabei, und mit %M, und hier muss das M großgeschrieben werden, bekommen wir eben den Monatsnamen, und damit können wir diese Variante erzielen. Sie können also, indem Sie entweder auf Session-Ebene Einstellungen ändern, oder entsprechende Formatierungsfunktionen verwenden, Einfluss darauf nehmen, wie in einem Ergebnis Datumswerte angezeigt werden.

SQL Grundkurs 2: Aufgaben und Lösungen

Vertiefen Sie Ihre SQL-Kenntnisse. In diesem Workshop erhalten Sie zahlreiche Beispielaufgaben, die Sie selbst lösen können. Anschließend zeigt Ihnen der Trainer die Lösung.

7 Std. 41 min (61 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieses Training setzt SQL-Kenntnisse voraus, wie sie beispielsweise in „SQL lernen und anwenden“ vermittelt werden.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!