Menu
Coddy logo textTech

Handling Dates Part 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 gängige Datumsfunktionen:

  1. DATE() - Wandelt einen String in ein Datum um
  2. STRFTIME() - Formatiert Daten 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

Extrahieren Sie zum Beispiel Jahr, Monat und Tag aus einem Datum:

-- Get year
SELECT STRFTIME('%Y', '2023-05-15')
-- Returns: 2023

-- Get month
SELECT STRFTIME('%m', '2023-05-15')
-- Returns: 05

-- Get day
SELECT STRFTIME('%d', '2023-05-15')
-- Returns: 15

-- Show combination of year and day (any separator can be used)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- Returns: 2023:15

-- Use a dash separator instead
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- Returns: 15-05-2023

-- Get day of week
SELECT STRFTIME('%w', '2023-05-15')
-- Returns: 1 (Monday; Sunday is 0)

Gängige 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)

Sie können jedes beliebige Trennzeichen zwischen den Bezeichnern verwenden (z. B. -, :, /). Zum Beispiel kombinieren sowohl STRFTIME('%d-%m-%Y', date) als auch STRFTIME('%d:%m:%Y', date) Tag, Monat und Jahr — nur mit unterschiedlichen Trennzeichen.

Sie können diese Funktionen in Abfragen kombinieren:

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

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • <strong>events</strong>: <strong>id</strong>, <strong>start</strong>, <strong>end</strong>

Schreibe eine Abfrage, die Folgendes anzeigt:

  • Die Event-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 Ende, gerundet auf die nächste ganze Zahl. Nenne diese Spalte duration_days

Filtere nur die Zeilen, bei denen das Jahr der Spalte start den Wert 2009 hat (STRFTIME() gibt einen String und keine Zahl zurück).

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

Erinnerung: Um die Differenz zwischen Daten 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