CodeGym /Kurse /SQL SELF /Datentypen für Arbeit mit Datum und Uhrzeit: DATE<...

Datentypen für Arbeit mit Datum und Uhrzeit: DATE, TIME, TIMESTAMP

SQL SELF
Level 15 , Lektion 4
Verfügbar

Wie oft hast du schon Apps gesehen, die mit Datum und Uhrzeit arbeiten? Online-Bestellungen, Stundenpläne, Änderungsverlauf in der Datenbank – sie alle hängen davon ab, dass Zeit richtig gespeichert wird. PostgreSQL gibt dir dafür richtig starke Tools an die Hand, und Tabellen mit Zeit sind keine gruseligen Tabellen mit Zeigern und Minuten, sondern eine klare Struktur, mit der du Ereignisse analysieren und sortieren kannst.

Datums- und Zeittypen erlauben dir:

  • Nur das Datum zu speichern DATE, nur die Uhrzeit TIME oder beides zusammen TIMESTAMP.
  • Operationen wie das Hinzufügen von Tagen, das Berechnen von Differenzen zwischen Daten und das Filtern von Einträgen nach Zeitkriterien durchzuführen.
  • Mit Zeitzonen zu arbeiten (aber das ist ein Thema für spätere Vorlesungen).

Datentypen: DATE, TIME, TIMESTAMP

Datentyp DATE

Der Typ DATE ist dafür da, nur das Datum zu speichern, ohne Uhrzeit. Er speichert Jahr, Monat und Tag. Das ist praktisch, wenn:

  • Du den Geburtstag eines Users speichern willst.
  • Das Datum eines Events wichtig ist, aber die Uhrzeit egal ist.

Beispiel-Format: YYYY-MM-DD (Jahr-Monat-Tag).

Beispiel:

id name - VARCHAR(100) event_date - DATE
1 SQL Workshop 2025-06-15
2 Python 2025-06-17
3 Java Courses 2025-06-25

Datentyp TIME

Der Typ TIME wird benutzt, um nur die Uhrzeit zu speichern. Das ist praktisch, wenn:

  • Du einen Zeitplan speichern willst, zum Beispiel den Arbeitsbeginn.
  • Die Uhrzeit wichtig ist, aber das Datum nicht.

Beispiel-Format: HH:MI:SS (Stunden:Minuten:Sekunden).

Beispiel:

id task_name - VARCHAR(100) start_time - TIME
1 Team Meeting 09:00:00
2 Code Review 11:30:00
3 Client Call 15:00:00

Datentyp TIMESTAMP

TIMESTAMP ist eine Kombination aus Datum und Uhrzeit. Das ist praktisch, wenn:

  • Du einen Zeitpunkt speichern willst, zum Beispiel wann ein User sich eingeloggt hat.
  • Du einen Zeitstempel brauchst, um Änderungen zu verfolgen (Logging).

Beispiel-Format: YYYY-MM-DD HH:MI:SS (Jahr-Monat-Tag Stunden:Minuten:Sekunden).

Beispiel:

id action - VARCHAR(100) login_time - TIMESTAMP
1 User Login 2023-10-15 14:30:00
2 File Uploaded 2023-10-15 15:10:00
3 User Logout 2023-10-15 16:45:00

Operationen mit Datum und Uhrzeit

Jetzt, wo wir wissen, welche Typen es gibt, lass uns anschauen, wie man damit arbeitet. PostgreSQL hat viele eingebaute Funktionen, um mit Datum und Zeit zu arbeiten.

Teile von Datum und Zeit extrahieren

Wenn du einen Zeitstempel (TIMESTAMP) hast und nur das Jahr, den Monat, den Tag oder die Stunde rausziehen willst, nimm die Funktion EXTRACT.

Beispiel:

SELECT EXTRACT(YEAR FROM TIMESTAMP '2025-06-15 14:30:00') AS jahr;
-- Ergebnis: 2025

SELECT EXTRACT(MONTH FROM TIMESTAMP '2025-06-15 14:30:00') AS monat;
-- Ergebnis: 06

SELECT EXTRACT(DAY FROM TIMESTAMP '2025-06-15 14:30:00') AS tag;
-- Ergebnis: 15

Hinzufügen und Subtrahieren von Zeitintervallen

Willst du wissen, was in einer Woche ist? Oder was gestern war? Benutze Operationen mit Intervallen.

Beispiel:

-- 7 Tage zum aktuellen Datum hinzufügen
SELECT CURRENT_DATE + INTERVAL '7 days' AS naechste_woche;

-- 1 Monat abziehen
SELECT CURRENT_DATE - INTERVAL '1 month' AS letzter_monat;

Vergleich von Daten

Wie findest du raus, ob ein Event schon vorbei ist? Einfacher als einen Bug zu finden – vergleiche einfach die Werte.

Beispiel:

SELECT event_date
FROM events
WHERE event_date < CURRENT_DATE;
-- Wir wählen alle Events in der Vergangenheit aus

Mehr über Zeit- und Datumsfunktionen erfährst du in den nächsten Vorlesungen. Für jetzt reicht es, wenn du weißt, dass es diese Typen gibt – das reicht erstmal.

Probleme mit Zeitzonen und Zeitstandard

Auch wenn wir in dieser Vorlesung noch nicht ins Detail zu Zeitzonen gehen, ist es wichtig zu wissen, dass PostgreSQL den Typ TIMESTAMPTZ (Zeitstempel mit Zeitzone) unterstützt. Zum Beispiel zeigt 2023-10-15 14:30:00+02, dass diese Zeit zur Zeitzone UTC+2 gehört.

Wir werden das Thema auf jeden Fall noch im Kurs behandeln, aber erst später :P

Beispiel

Jetzt ist es Zeit, unser neues Wissen in der Praxis zu testen. Lass uns eine Tabelle erstellen, die den Stundenplan der Studenten speichert.

id subject_name class_date - DATE start_time - TIME end_time - TIME created_at - TIMESTAMP
1 Mathematics 2023-10-16 09:00:00 10:30:00 2023-10-12 14:00:00
2 Physics 2023-10-16 11:00:00 12:30:00 2023-10-12 14:00:00
3 Chemistry 2023-10-17 09:00:00 10:30:00 2023-10-12 14:01:00
4 Literature 2023-10-17 11:00:00 12:30:00 2023-10-12 14:01:00
5 Computer Science 2023-10-18 10:00:00 11:30:00 2023-10-12 14:02:00

In ein paar Vorlesungen wirst du solche Tabellen mit SQL-Queries in der Datenbank selbst erstellen. Bis dahin einfach mal anschauen und genießen :)

Typische Fehler

Format von Datum und Zeit: Beim Einfügen von Daten ist das richtige Format wichtig: YYYY-MM-DD für Daten und HH:MI:SS für Uhrzeiten. PostgreSQL versteht dich nicht, wenn du versuchst, ein Datum wie "15/10/2023" einzufügen.

Falscher Datentyp: Wenn du versuchst, einen Textwert in ein DATE-Feld zu schreiben, gibt es einen Fehler.

Fehler bei Zeitintervallen: Wenn du zum Beispiel 30 Tage zu Februar addierst, verarbeitet PostgreSQL das korrekt, aber das Datum kann dann schon im März liegen.

Jetzt kennst du die Datentypen für Arbeit mit Datum und Zeit in PostgreSQL. In echten Projekten hilft dir das, Stundenpläne zu verwalten, Events zu loggen oder wichtige Ereignisse im System zu tracken!

1
Umfrage/Quiz
Numerische Datentypen, Level 15, Lektion 4
Nicht verfügbar
Numerische Datentypen
Numerische Datentypen
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION