Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

SQL Grundkurs 1: Die Sprache erlernen

Datumsspalten mit ORACLE

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Das Standarddatenformat bei ORACLE unterscheidet sich, auch wenn es zusätzlich von der eingesetzten Sprachversion abhängig ist, in der Regel immer von dem des MS SQL Servers. Daher erläutere ich Ihnen die Unterschiede in diesem Film.

Transkript

In diesem Video lernen Sie, wie Oracle im Speziellen mit Datumswerten umgeht. In unserer Personaltabelle haben wir ja ein Eintrittsdatum gespeichert. Wenn wir jetzt danach filtern, geben wir das Datum als "character" unter einfachen Hochkomma an. Das ist ja in ANSI SQL so vorgesehen. Nun wird dieser Text interpretiert und in ein Datum umgewandelt - intern - damit der mit der Spalte "eintritt", die hier einen Datumsdatentypaufweis verglichen werden kann. Ein großer Vorteil bei Oracle ist, dass Ein- und Ausgabeformat, also Standardein-/ausgabeformat eines Datumsfeldes ident sind. Das heißt, Sie können ein Datum immer in der Reihenfolge eingeben, wie es angezeigt wird. Jetzt sehen wir hier: Ich habe diese Anweisung hier schon vorweg ausgeführt, das mache ich noch einmal, dass ein Datum im Format "Tag-Monat-Jahr" angezeigt wird. Das heißt, Sie können, oder müssen sogar in derselben Reihenfolge ein Datum eingeben. Deshalb wird dieses Datum auch korrekt, wie in unserem Fall gewollt, als "Erster Mai" interpretiert. Ich führe diese Anweisung aus und wir bekommen diese 6 Werte. Die Gefahr, dass dies als "Jänner" interpretiert wird, besteht hier nicht. Das kann natürlich sein, dass Sie auf einem komplett englischsprachigen System, mit englischem Betriebssystem etc. arbeiten, d.h. mitnichten, dass dort standardmäßig das deutsche Format eingestellt ist. Das würde bedeuten, dass diese Anweisung unter Umständen zu einem Fehler führt. Ich verwende jetzt in Oracle die Anweisung "ALTER SESSION", um auf SESSION-Ebene dieses Format zu ändern: "ALTER SESSION  SET", die Einstellung heißt "nls_date_format =" und verwende zum Beispiel das amerikanische Format 'MM-DD-YYYY' Ich führe diese Anweisung aus. Und nun habe ich ein englisches- amerikanisches Datumsformat. Wenn ich nun dieselbe Anweisung noch einmal ausführe, sehen Sie, dass ich jetzt 8 Treffer bekomme, da jetzt dieses Datum nicht mehr als "Erster Mai", sondern als "fünfter Jänner" interpretiert wird und damit zusätzlich "Marion Heuer" mit "Erstem April" (04-01) und auch der "Peter Kofler" mit demselben Datum mit angezeigt werden. Auch bei Oracle spielt das Trennzeichen, also, ob Sie jetzt hier einen Punkt, einen Bindestrich oder einen Schrägstrich verwenden, eine untergeordnete Rolle. Entscheidend ist die Reihenfolge. Damit haben Sie es auch schon gesehen, wie Sie auf SESSION-Ebene das Format ändern können. Um jetzt wieder auf deutsches Format zurückzustellen, muss ich lediglich ein entsprechendes Format angeben. Außerdem verwende ich jetzt hier die vierstellige Jahresangabe. Denn standardmäßig haben wir gesehen, war sie ja nur zweistellig. Und hier kann ich das auf dieser Art und Weise auch ändern, damit ich in Zukunft das Datum vierstellig angezeigt bekomme. Weil wir haben ja gehört, dass Eingabe- und Ausgabeformat bei Oracle ident sind. Das heißt, wenn ich das Format ändere, habe ich auch bei meinem Ergebnis jetzt die Darstellung der Jahreszahl vierstellig. Aber auch bei Oracle gilt, dass diese Variante sinnvoller ist bei Adhoc-Eingaben. Wie sollten wir vorgehen, wenn wir Anweisungen, z.B. im Programmcode hinterlegen? Auch bei Oracle gibt es die Möglichkeit eines expliziten Konvertierens eines Textes in ein Datum. Damit lösen wir uns von jeglichen Rahmenbedingungen. Diese Variante empfehle ich, wenn Sie die Anweisungen in Programmcode hinterlegen. Konvertierungsfunktionen heißen bei Oracle: "to_date", "to_char", und "to_number". Das heißt, damit können Sie etwas in eine Zahl, einen Text oder ein Datum konvertieren. Ich verwende also die Funktion "to_date", um hier dieses Datum explizit zu erzeugen. Das Format, in dem dieser Text konvertiert werden soll in ein Datum, gebe ich hier in dem gleichen Format wie vorher bei der ALTER SESSION-Anweisung ein, mit anderen Worten: 'DD.MM.YYYY'. Damit wird dieses Datumsformat immer als solches richtig erkannt, und wir bekommen hier 6 Treffer. Selbst dann, wenn auf SESSION-Ebene das Datumsformat - ich ändere es jetzt hier einmal - auf englischem Format eingestellt ist. Ich führe jetzt hier diese Anweisung aus. Und wir sehen, obwohl jetzt hier "Monat-Tag-Jahr" als Format verwendet wird, wird dieses Datum richtig konvertiert. Verwenden Sie also eine der zwei Varianten, um ein gültiges Datum zu erhalten. Wenn Sie ein ungültiges Datum verwenden, z.B. wir haben jetzt hier im Moment ja amerikanisches Datumsformat, und ich verwende jetzt eine Anweisung, zum Beispiel "den 25. Mai", dann würde das jetzt natürlich in einen Fehler münden. "Not a valid month", weil 25 ja als Monat nicht verwendet werden kann.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

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!