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 1: Die Sprache erlernen

Rechnen mit Datumswerten Teil 2

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wie viele Tage liegen zwischen beiden Terminen? Solche und ähnliche Aufgabenstellungen können Sie lösen, nachdem Sie sich dieses Video angesehen haben, und Sie können mit Zeitspannen umgehen.

Transkript

In diesem zweiten Video zum Thema Datumsberechnungen möchte ich Ihnen zeigen, wie Sie Zeitspannen, also den Abstand zwischen zwei Datumswerten, berechnen. Dazu möchte ich wieder das Datum aus der Bestelltabelle verwenden. Das eignet sich hier ganz gut. Bei einem SQL-Server gibt es auch hierfür eine Funktion, die trägt den Namen: "DATE DIFF". Damit kann die Differenz zwischen zwei Datumswerten in einem Intervall berechnet werden. Zum Beispiel "day" wäre der Tag zwischen dem Datum - das ist der Inhalt des Bestelldatums - und dem aktuellen Datum, zum Beispiel die Funktion "SYSDATETIME". Wenn Sie eine ältere SQL-Serverversion von vor 2008 verwenden, sollten Sie "GET DATE" als Funktion hier verwenden. Das wären "s" Tage. Das kann ich natürlich gleich kopieren, denn wenn ich nun Wochen haben möchte, muss ich lediglich diesen Parameter hier ersetzen. Anstelle von "day" verwende ich "week". Natürlich werde ich auch den Alias-Namen anpassen. Monate kann ich auch noch berechnen, "months". Ich schreibe es lieber mit der Hand, weil mir gefällt der großgeschriebene Parameter hier nicht so. Mir gefällt das klein besser. Aber das ist natürlich Geschmackssache. Hier Monate als Alias-Namen. Bei diesen Datumswerten können wir uns Jahre hier sparen. Das bringt nicht wirklich etwas. Führen wir diese Anweisung nun aus. Wir bekommen die Differenz in Tagen, Wochen und Monaten, als gerundete Werte. Die DATE IF-Funktion gibt uns hier ganzzahlige Werte hier zurück. Wie gehen wir für dieselbe Aufgabenstellung bei Oracle vor? Bei Oracle bekommen wir die Differenz zwischen zwei Datumswerten durch Subtraktion in Tagen. Das heißt, wenn ich also die Tage berechnen möchte, dann muss ich hernehmen das aktuelle Datum mit der Funktion "SYSDATE" und das Datum abziehen. Dann bekomme ich das Ganze in Tagen. Schauen wir uns das Ergebnis gleich an. Wir sehen jetzt auch, dass wir hier keine ganzzahligen Werte, sondern Kommastellen bekommen. Das heißt, gegebenenfalls müssten wir mit der "ROUND", mit der runden Funktion hier nacharbeiten, um diese Kommastellen hier sozusagen einzudämmen. Sie sehen jetzt auch: Wenn ich die Anweisung noch einmal ausführe, dass sich bereits hier die Kommastellen hier hinten ändern, weil ja die Zeit inzwischen weiterläuft. Wenn ich jetzt Wochen haben möchte, dann muss ich - wie bei Oracle üblich - das selber berechnen. D.h. ich muss das ganze Ergebnis durch 7 dividieren, um auf Wochen zu kommen. Genauso könnte ich auf Stunden kommen, wenn ich es mit 24 multipliziere. Bei den Monaten stehen wir wieder sozusagen an der Wand. Die können wir nicht selber berechnen. Dafür benötigen wir eine Funktion. Die gibt es auch. Das ist die Funktion "MONTHS_BETWEEN". Dieser Funktion übergeben wir im ersten Parameter die SYSDATE-Funktion, die uns die aktuelle Uhrzeit liefert, und als zweiten Parameter eben das Datum unserer Bestellung, "s Monate". Die Jahre müssten wir gegebenenfalls auch selber berechnen, indem wir diesen Wert durch 12 dividieren. "MONTHS_BETWEEN" ist also die einzige Funktion, die wir in diesem Zusammenhang verwenden. Alles andere müssen wir durch Berechnung selber eruieren. Wir bekommen hier zwar maximal ein halbes Jahr heraus, aber dadurch, dass uns Oracle die Nachkommastellen liefert, ist das durchaus verwendbar. Führen wir die Anweisung aus: Wir sehen jetzt hier Tage 215 bis zu 168, Wochen von 28 bis 30. Wir müssen jetzt hier einfach die Nachkommastellen etwas ignorieren. Monate sind 7 Komma, 6 Komma irgendetwas. Die Jahre sind natürlich alle unter null. Aber aufgrund der Kommastellen ist das Ergebnis durchaus brauchbar. Etwas weniger erfolgreich sind wir hingegen bei MySQL. Da gibt es nämlich sehr wohl eine Funktion "DATE DIFF". Diese berechnet aber die Differenz zwischen Datumswerten in Tagen. Es gibt aktuell hier leider keine Funktion, die uns das Ergebnis in Monaten, gegebenenfalls für eine Weiterberechnung, hier liefern würde. In diesem Video haben Sie gesehen, wie Sie entweder mittels Funktionen, beim SQL-Server oder mittels, unter Anführungszeichen, manueller Berechnung bei Oracle die Differenz zwischen Zeitspannen berechnen. Für Monate gibt es auch bei Oracle eine Funktion, denn Monate können Sie ja nicht manuell berechnen.

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!