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:
DATE()– Wandelt eine Zeichenfolge in ein Datum umSTRFTIME()– Formatiert Datumsangaben gemäß den angegebenen ParameternDATE('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ückZum 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')Aufgabe
EinfachVerfü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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Weitere Schlüsselwörter
Das IN-SchlüsselwortDas BETWEEN-SchlüsselwortDas LIKE-SchlüsselwortDas AS-SchlüsselwortRückblick – Handymodelle7Datumsangaben
Datumsangaben behandeln – Teil 1Datumsangaben behandeln – Teil 2Datumsangaben behandeln – Teil 32Bedingungen
Grundlagen der BedingungenDas Schlüsselwort ANDDas Schlüsselwort ORDas Schlüsselwort NOTMehrere kombinierte BedingungenKlammernBoolesche Werte5Arithmetische Operationen
Mathematische OperatorenMathematische SpaltenDie Modulo-OperationDie ROUND()-Funktion3Spezifisches Rückgabeformat
NULL-WerteErgebnisse sortieren Teil 1Ergebnisse sortieren Teil 2Zusammenfassung - Cyber Security FirmAnzahl der Datensätze begrenzenZusammenfassung - Vehicle Factory6Einführungsaufgaben
Wiederholung – ParlamentswahlWiederholung – Festnahme eines Straftäters durch die PolizeiWiederholung – Getränkebehälter an der BarWiederholung – Neue Spalten erstellenÜbe selbstständig: SQL-Playground