Menu
Coddy logo textTech

Datumsangaben behandeln – Teil 3

Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 33 von 72.

SQL bietet mehrere nützliche Funktionen zum Bearbeiten und Formatieren von Datumsangaben. Hier sind einige häufig verwendete Datumsfunktionen:

  1. DATE() – Wandelt eine Zeichenfolge in ein Datum um
  2. STRFTIME() – Formatiert Datumsangaben gemäß den angegebenen Parametern
  3. DATE('now') – Ruft das aktuelle Datum ab:

Zum Beispiel einen String in ein Datum umwandeln:

SELECT DATE('2023-05-15 13:45:00')
-- Gibt zurück: 2023-05-15

SELECT DATE('now')
-- Gibt das aktuelle Datum zurück

Zum Beispiel Jahr, Monat und Tag aus einem Datum extrahieren:

-- Jahr abrufen
SELECT STRFTIME('%Y', '2023-05-15')
-- Gibt zurück: 2023

-- Monat abrufen
SELECT STRFTIME('%m', '2023-05-15')
-- Gibt zurück: 05

-- Tag abrufen
SELECT STRFTIME('%d', '2023-05-15')
-- Gibt zurück: 15

-- Kombination aus Jahr und Tag anzeigen (beliebiger Trenner kann verwendet werden)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Gibt zurück: 2023:15

-- Stattdessen einen Bindestrich als Trenner verwenden
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Gibt zurück: 15-05-2023

-- Wochentag abrufen
SELECT STRFTIME('%w', '2023-05-15')
-- Gibt zurück: 1 (Montag; Sonntag ist 0)

Häufige Formatbezeichner:

  • %Y: Jahr (4 Ziffern)
  • %m: Monat (01–12)
  • %d: Tag des Monats (01–31)
  • %w: Wochentag (0–6, Sonntag ist 0)
  • %H: Stunde (00–23)
  • %M: Minute (00–59)
  • %S: Sekunde (00–59)

Du kannst jedes Trennzeichen zwischen den Bezeichnern verwenden (z. B. -, :, /). Zum Beispiel kombinieren STRFTIME('%d-%m-%Y', date) und STRFTIME('%d:%m:%Y', date) beide Tag, Monat und Jahr, lediglich mit unterschiedlichen Trennzeichen.

Du kannst diese Funktionen in Abfragen kombinieren:

-- Finde alle Datensätze aus dem aktuellen Jahr
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')
challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • events: id, start, end

Schreibe eine Abfrage, die Folgendes anzeigt:

  • Die Ereignis-ID
  • Das Startdatum, formatiert als "DD-MM-YYYY". Nenne diese Spalte formatted_start
  • Das Enddatum, formatiert als "DD-MM-YYYY". Nenne diese Spalte formatted_end
  • Die Dauer in Tagen zwischen start und end, auf die nächste ganze Zahl gerundet. Nenne diese Spalte duration_days

Filtere nur die Zeilen, in denen das Jahr der Spalte start 2009 ist (STRFTIME() gibt eine Zeichenfolge und keine Zahl zurück).

Sortiere die Ergebnisse nach der Dauer in Tagen in absteigender Reihenfolge.

Hinweis: Um die Differenz zwischen Datumsangaben zu berechnen, verwende: JULIANDAY(end) - JULIANDAY(start) und verwende ROUND(), um auf ganze Zahlen zu runden.

Probier es selbst

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: SQL-Playground