Datumsfunktionen
Date
Die date-Funktion in SQLite ermöglicht es, das Datum aus einem Datums- und Uhrzeitausdruck oder mithilfe von Modifikatoren zu extrahieren.
date(datetime_expression, modifier, modifier, ...)
datetime_expression: Ein Datums- und Uhrzeitausdruck, dessen Datum extrahiert werden soll.modifier: Ein optionaler Modifikator, der auf den Datums- und Uhrzeitausdruck angewendet werden kann.
Beispiel 1: Nur das Datum extrahieren
SELECT date('2024-01-15 12:30:45');
-- Ausgabe: '2024-01-15'
Hier wird das Datum aus dem gegebenen Datums- und Uhrzeitausdruck (‚2024-01-15 12:30:45‘) extrahiert, und die Ausgabe ist das Datum allein (‚2024-01-15‘).
Beispiel 2: Anwenden eines Modifikators
SELECT date('2024-01-15 12:30:45', '+2 days');
-- Ausgabe: '2024-01-17
Hier wird der Modifikator ‚+2 days‘ angewendet, um dem ursprünglichen Datum (‚2024-01-15 12:30:45‘) zwei Tage hinzuzufügen. Die Ausgabe ist das Datum (‚2024-01-17‘). Du kannst auch mehrere Modifikatoren anwenden, um komplexe Änderungen am Datum vorzunehmen.
Kombination von Modifikatoren:
Man kann mehrere Modifikatoren kombinieren, um komplexe Änderungen vorzunehmen.
SELECT date('2024-01-15', '+1 months', '-2 days');
-- Ausgabe: '2024-02-13'
Verwendbare Modifikatoren
+N days -N days +N months -N months +N years -N years +N hours -N hours +N minutes -N minutes +N seconds -N seconds
Die date-Funktion ist daher vielseitig und ermöglicht es, das Datum aus einem Datums- und Uhrzeitausdruck zu extrahieren und/oder Modifikatoren anzuwenden, um das Ergebnis zu beeinflussen.
time
Die time-Funktion in SQLite ermöglicht es, die Uhrzeit aus einem Datums- und Uhrzeitausdruck zu extrahieren oder Modifikatoren anzuwenden, um die Uhrzeit zu verändern. Hier sind ausführliche Erklärungen und Beispiele mit expression und modifier
time(datetime_expression, modifier, modifier, ...)
datetime_expression: Ein Datums- und Uhrzeitausdruck, dessen Uhrzeit extrahiert werden soll.modifier: Ein optionaler Modifikator, der auf den Datums- und Uhrzeitausdruck angewendet werden kann.
Beispiel 1: Nur die Uhrzeit extrahieren
SELECT time('2024-01-15 12:30:45');
-- Ausgabe: '12:30:45'
Hier wird die Uhrzeit aus dem gegebenen Datums- und Uhrzeitausdruck (‚2024-01-15 12:30:45‘) extrahiert, und die Ausgabe ist die Uhrzeit allein (‚12:30:45‘).
Beispiel 2: Anwenden eines Modifikators auf die Uhrzeit
SELECT time('2024-01-15 12:30:45', '+2 hours', '-15 minutes');
-- Ausgabe: '14:15:45'
Hier werden die Modifikatoren ‚+2 hours‘ und ‚-15 minutes‘ angewendet, um dem ursprünglichen Uhrzeitausdruck (‚2024-01-15 12:30:45‘) zwei Stunden hinzuzufügen und 15 Minuten abzuziehen. Die Ausgabe ist die veränderte Uhrzeit (‚14:15:45‘).
Verwendbare Modifikatoren
+N hours -N hours +N minutes -N minutes +N seconds -N seconds
Die time-Funktion ermöglicht es, die Uhrzeit aus einem Datums- und Uhrzeitausdruck zu extrahieren und/oder Modifikatoren anzuwenden, um das Ergebnis zu beeinflussen.
datetime
Die datetime-Funktion in SQLite ermöglicht es, einen Textausdruck in ein Datums- und Uhrzeitausdrucksformat zu konvertieren. Hier sind ausführliche Erklärungen und Beispiele mit expression und modifier
datetime(timestring, modifier, modifier, ...)
timestring: Ein Textausdruck, der das Datum und die Uhrzeit repräsentiert.modifier: Ein optionaler Modifikator, der auf den Datums- und Uhrzeitausdruck angewendet werden kann.
Beispiel 1: Grundlegende Verwendung ohne Modifikatoren
SELECT datetime('2024-01-15 12:30:45');
-- Ausgabe: '2024-01-15 12:30:45'
Hier wird der Textausdruck ‚2024-01-15 12:30:45‘ in das Datums- und Uhrzeitausdrucksformat konvertiert.
Beispiel 2: Anwenden von Modifikatoren
SELECT datetime('2024-01-15 12:30:45', '+1 days', '-2 hours');
-- Ausgabe: '2024-01-16 10:30:45'
Hier werden die Modifikatoren ‚+1 day‘ und ‚-2 hours‘ angewendet, um dem ursprünglichen Datums- und Uhrzeitausdruck (‚2024-01-15 12:30:45‘) einen Tag hinzuzufügen und zwei Stunden abzuziehen. Die Ausgabe ist der veränderte Datums- und Uhrzeitausdruck (‚2024-01-16 10:30:45‘).
Verwendbare Modifikatoren
+N days -N days +N months -N months +N years -N years +N hours -N hours +N minutes -N minutes +N seconds -N seconds
Die datetime-Funktion bietet Flexibilität bei der Konvertierung von Textausdrücken in Datums- und Uhrzeitausdrücke und ermöglicht gleichzeitig die Anwendung von Modifikatoren für spezifische Anpassungen.
Julianday
Die julianday-Funktion in SQLite gibt den Julianischen Tag (Julian Day) für einen Datums- und Uhrzeitausdruck zurück. Der Julianische Tag ist eine kontinuierliche Zählung der Tage seit dem 24. November 4714 v. Chr. (Julianischer Kalender). Hier sind ausführliche Erklärungen und Beispiele mit expression und modifier
julianday(datetime_expression, modifier, modifier, ...)
datetime_expression: Ein Datums- und Uhrzeitausdruck, dessen Julianischer Tag extrahiert werden soll.modifier: Ein optionaler Modifikator, der auf den Datums- und Uhrzeitausdruck angewendet werden kann.
Beispiel 1: Grundlegende Verwendung ohne Modifikatoren
SELECT julianday('2024-01-15 12:30:45');
-- Ausgabe: 2460325.021354167
Hier wird der Julianische Tag für den gegebenen Datums- und Uhrzeitausdruck (‚2024-01-15 12:30:45‘) berechnet und zurückgegeben.
Beispiel 2: Anwenden von Modifikatoren
SELECT julianday('2024-01-15 12:30:45', '+2 days', '-1 months');
-- Ausgabe: 2460296.021354167
Hier werden die Modifikatoren ‚+2 days‘ und ‚-1 month‘ angewendet, um dem ursprünglichen Datums- und Uhrzeitausdruck (‚2024-01-15 12:30:45‘) zwei Tage hinzuzufügen und einen Monat abzuziehen. Die Ausgabe ist der berechnete Julianische Tag (‚2460296.021354167‘).
Zu beachten ist, dass der Julianische Tag eine Dezimalzahl sein kann, da er den Tag und die Uhrzeit genau repräsentiert.
Verwendbare Modifikatoren
+N days -N days +N months -N months +N years -N years +N hours -N hours +N minutes -N minutes +N seconds -N seconds
Die julianday-Funktion ermöglicht es, den Julianischen Tag für einen Datums- und Uhrzeitausdruck zu berechnen und Modifikatoren anzuwenden, um das Ergebnis zu beeinflussen.
unixepoch
Die unixepoch-Funktion in SQLite konvertiert einen Datums- und Uhrzeitausdruck in den Unix-Zeitstempel, der die Anzahl der Sekunden seit dem 1. Januar 1970 (auch als Unix-Epoche bekannt) darstellt. Hier sind ausführliche Erklärungen und Beispiele mit expression und modifier
unixepoch(datetime_expression, modifier, modifier, ...)
datetime_expression: Ein Datums- und Uhrzeitausdruck, der in einen Unix-Zeitstempel umgewandelt werden soll.modifier: Ein optionaler Modifikator, der auf den Datums- und Uhrzeitausdruck angewendet werden kann.
Beispiel 1: Grundlegende Verwendung ohne Modifikatoren
SELECT unixepoch('2024-01-15 12:30:45');
-- Ausgabe: 1705321845
Hier wird der Unix-Zeitstempel für den gegebenen Datums- und Uhrzeitausdruck (‚2024-01-15 12:30:45‘) berechnet und zurückgegeben.
Beispiel 2: Anwenden von Modifikatoren
SELECT unixepoch('2024-01-15 12:30:45', '+1 days', '-2 hours');
-- Ausgabe: 1705401045
Hier werden die Modifikatoren ‚+1 day‘ und ‚-2 hours‘ angewendet, um dem ursprünglichen Datums- und Uhrzeitausdruck (‚2024-01-15 12:30:45‘) einen Tag hinzuzufügen und zwei Stunden abzuziehen. Die Ausgabe ist der berechnete Unix-Zeitstempel (‚1705401045‘).
Beachten SIe, dass der Unix-Zeitstempel normalerweise eine Ganzzahl darstellt, die die vergangenen Sekunden seit der Unix-Epoche repräsentiert.
Verwendbare Modifikatoren
+N days -N days +N months -N months +N years -N years +N hours -N hours +N minutes -N minutes +N seconds -N seconds
Die unixepoch-Funktion ermöglicht es, den Unix-Zeitstempel für einen Datums- und Uhrzeitausdruck zu berechnen und Modifikatoren anzuwenden, um das Ergebnis zu beeinflussen.
Der Unterschied zwischen UNIXEPOCH und JULIANDAY in SQLite liegt nicht nur im Startdatum (Epoche), sondern auch in der Art und Weise, wie sie Zeit und Datum darstellen und welche Anwendungsfälle sie haben.
Hauptunterschiede zwischen JULIANDAY und UNIXEPOCH
Eigenschaft |
Julianisches Datum (JULIANDAY) |
Unix-Zeit (UNIXEPOCH) |
|---|---|---|
Startzeitpunkt |
1. Januar 4713 v. Chr. (UTC) |
1. Januar 1970, 00:00:00 (UTC) |
Darstellung |
Dezimalzahl: ganze Zahl für Tage, Bruchteile für Tagesanteile. |
Ganze Zahl: Anzahl der Sekunden seit 1970. |
Granularität |
Präzise bis zu Bruchteilen eines Tages. |
Sekundengenau (in Kombination mit Millisekunden verwendbar). |
Anwendungsfälle |
Mathematik und präzise Zeitdifferenzen. |
Zeiterfassung in Computern und Systemen. |
Darstellung von UTC |
Unterstützt Bruchteile und Zeitangaben in UTC. |
Sekundengenau und vor allem für UTC gedacht. |
Beispielwert heute |
|
|
Wann nutzt man welches?
Nutze JULIANDAY:
Wenn man präzise Datums- und Zeitdifferenzen benötigt.
Für wissenschaftliche oder historische Berechnungen.
Für dynamische Berechnungen mit Datumsanteilen (Tage, Stunden, Minuten).
Nutze UNIXEPOCH:
Wenn man Zeitstempel in Systemen speichern oder austauschen möchte.
Wenn man mit modernen Programmiersprachen arbeitet, die Unix-Zeit nativ unterstützen.
Für Anwendungen, die auf Sekundengenauigkeit beruhen.
strftime
Die strftime-Funktion in SQLite wird verwendet, um einen Datums- und Uhrzeitausdruck in einen formatierten Zeichenfolgenausdruck umzuwandeln. Hier sind ausführliche Erklärungen und Beispiele für die Verwendung von strftime
strftime(format, datetime_expression, modifier, modifier, ...)
format: Ein Zeichenfolgenausdruck, der das gewünschte Ausgabeformat definiert.datetime_expression: Ein Datums- und Uhrzeitausdruck, der in die angegebene Zeichenfolge umgewandelt werden soll.modifier: Ein optionaler Modifikator, der auf den Datums- und Uhrzeitausdruck angewendet werden kann.
Beispiel 1: Grundlegende Verwendung ohne Modifikatoren
SELECT strftime('%d.%m.%Y %H:%M:%S', '2024-01-15 12:30:45');
-- Ausgabe: '15.01.2024 12:30:45'
Hier wird der Datums- und Uhrzeitausdruck ‚2024-01-15 12:30:45‘ in das angegebene Format ‚%d.%m.%Y %H:%M:%S‘ umgewandelt.
Beispiel 2: Anwenden von Modifikatoren
SELECT strftime('%Y-%m-%d %H:%M:%S', '2024-01-15 12:30:45', '+2 days', '-1 hours');
-- Ausgabe: '2024-01-17 11:30:45'
Hier werden die Modifikatoren ‚+2 days‘ und ‚-1 hour‘ auf den Datums- und Uhrzeitausdruck ‚2024-01-15 12:30:45‘ angewendet, bevor die Umwandlung in das Format erfolgt. Die Ausgabe ist die formatierte Zeichenfolge mit den entsprechenden Änderungen (‚2024-01-17 11:30:45‘).
Verwendbare Datumsformatangaben
%d: Tag des Monats (mit führender Null) - Bereich: 01-31.%f: Bruchteil der Sekunde - Format: SS.SSS.%H: Stunde im 24-Stunden-Format (mit führender Null) - Bereich: 00-24.%j: Tag des Jahres (mit führender Null) - Bereich: 001-366.%J: Julianischer Tag (ohne führende Null).%m: Monat (mit führender Null) - Bereich: 01-12.%M: Minute (mit führender Null) - Bereich: 00-59.%s: Sekunden seit dem 1. Januar 1970.%S: Sekunden (mit führender Null) - Bereich: 00-59.%w: Tag der Woche (Sonntag == 0) - Bereich: 0-6.%W: Woche des Jahres (mit führender Null) - Bereich: 00-53.%Y: Jahr (mit führender Nullen) - Bereich: 0000-9999.%%: Prozentzeichen (%) als Literal.
Beispiel 3: Anwenden von Datumsformatangaben
-- Beispiel 1
SELECT strftime('%d', '2024-01-15 12:30:45') AS tag_des_monats;
-- Ausgabe: '15'
-- Beispiel 2
SELECT strftime('%f', '2024-01-15 12:30:45.123456') AS fractional_sekunden;
-- Ausgabe: '45.123'
-- Beispiel 3
SELECT strftime('%H', '2024-01-15 18:30:45') AS stunden_24_format;
-- Ausgabe: '18'
-- Beispiel 4
SELECT strftime('%j', '2024-05-01') AS tag_im_jahr;
-- Ausgabe: '122'
-- Beispiel 5
SELECT strftime('%Y-%m-%d %H:%M:%S', '2024-08-10 09:15:00') AS format_datetime;
-- Ausgabe: '2024-08-10 09:15:00'
-- Beispiel 6 (Kombination von mehreren Formatangaben)
SELECT strftime('Woche %W von %Y, Tag %d, Zeit: %H:%M:%S', '2024-12-01 15:45:30') AS kombinierte_formate;
-- Ausgabe: 'Woche 48 von 2024, Tag 01, Zeit: 15:45:30'
Verwendbare Modifikatoren
+N days -N days +N months -N months +N years -N years +N hours -N hours +N minutes -N minutes +N seconds -N seconds
Das strftime-Format verwendet spezielle Codes, um verschiedene Teile des Datums und der Uhrzeit darzustellen. Zum Beispiel steht %Y für das Jahr mit vier Ziffern, %m für den Monat als zweistellige Zahl und %H für die Stunde im 24-Stunden-Format. Du kannst diese Codes kombinieren, um das gewünschte Ausgabeformat zu erstellen.
Modifikator
Modifikatoren für Tage, Monate und Jahre:
+N days: Fügt N Tage zum Datum hinzu.-N days: Subtrahiert N Tage vom Datum.+N months: Fügt N Monate zum Datum hinzu.-N months: Subtrahiert N Monate vom Datum.+N years: Fügt N Jahre zum Datum hinzu.-N years: Subtrahiert N Jahre vom Datum.
SELECT date('2024-01-15', '+3 days');
-- Ausgabe: '2024-01-18'
Aktuelle Uhrzeit:
+N hours: Fügt N Stunden zur Uhrzeit hinzu.-N hours: Subtrahiert N Stunden von der Uhrzeit.+N minutes: Fügt N Minuten zur Uhrzeit hinzu.-N minutes: Subtrahiert N Minuten von der Uhrzeit.+N seconds: Fügt N Sekunden zur Uhrzeit hinzu.-N seconds: Subtrahiert N Sekunden von der Uhrzeit.
SELECT time('21:12:38', '+30 seconds');
-- Ausgabe: '21:13:08'
Aktuelles Datum
'now'Modifikator Der Modifikator ‚now‘ wird verwendet, um den aktuellen Datums- und Uhrzeitausdruck zu repräsentieren. Wenn ‚now‘ als Modifikator verwendet wird, wird der aktuelle Zeitpunkt verwendet, wenn die Abfrage ausgeführt wird.
SELECT datetime('now') AS current_datetime;
-- Beispiel-Ausgabe: '2024-01-15 16:22:30'
Aktuelle Uhrzeit
In SQLite bezieht sich der Modifier localtime auf die lokale Zeitzone des Geräts oder des Systems, auf dem die Datenbank ausgeführt wird. Der Modifier wird normalerweise mit Datums- und Uhrzeitfunktionen wie STRFTIME und DATETIME verwendet.
Wenn man beispielsweise STRFTIME('%Y-%m-%d %H:%M:%S', 'now', 'localtime') verwendest, gibt dies das aktuelle Datum und die aktuelle Uhrzeit in der lokalen Zeitzone des Systems zurück.
localtimebei STRFTIME Wenn es als Modifier für dieSTRFTIME-Funktion verwendet wird, bedeutet dies, dass das Ergebnis der Formatierung in der lokalen Zeitzone des Systems zurückgegeben wird.
SELECT STRFTIME('%Y-%m-%d %H:%M:%S', 'now', 'localtime');
-- Beispiel-Ausgabe: 2024-01-18 09:23:57
localtimebei DATETIME: Wenn es als Modifier für dieDATETIME-Funktion verwendet wird, bedeutet dies, dass der übergebene Zeitwert in der lokalen Zeitzone interpretiert wird.
SELECT DATETIME('2024-01-15 15:00:00', 'localtime');
--Beipiel-Ausgabe: 2024-01-15 16:00:00