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

SQLite
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

SQLite
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.

SQLite
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

SQLite
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

SQLite
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

SQLite
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

SQLite
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

SQLite
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

SQLite
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

SQLite
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

SQLite
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

2460274.5 (30. November 2024, 12:00 Uhr UTC)

1732924800 (30. November 2024, 00:00 Uhr UTC)

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

SQLite
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

SQLite
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

SQLite
-- 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.

SQLite
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.

SQLite
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.

SQLite
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.

  • localtime bei STRFTIME Wenn es als Modifier für die STRFTIME-Funktion verwendet wird, bedeutet dies, dass das Ergebnis der Formatierung in der lokalen Zeitzone des Systems zurückgegeben wird.

SQLite
SELECT STRFTIME('%Y-%m-%d %H:%M:%S', 'now', 'localtime');
-- Beispiel-Ausgabe: 2024-01-18 09:23:57
  • localtime bei DATETIME: Wenn es als Modifier für die DATETIME-Funktion verwendet wird, bedeutet dies, dass der übergebene Zeitwert in der lokalen Zeitzone interpretiert wird.

SQLite
SELECT DATETIME('2024-01-15 15:00:00', 'localtime');
--Beipiel-Ausgabe: 2024-01-15 16:00:00