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:
DATE()- Wandelt einen String in ein Datum umSTRFTIME()- Formatiert Daten 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ückExtrahieren 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')Aufgabe
EinfachVerfü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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns