SQLite hat eine time()
Funktion, mit der Sie einen Zeitwert basierend auf einer Zeitzeichenfolge und beliebigen Modifikatoren zurückgeben können.
Es gibt die Zeit in diesem Format zurück:HH:MM:SS
Um diese Funktion zu verwenden, müssen Sie eine Zeitzeichenfolge sowie alle (optionalen) Modifikatoren angeben. Mit einem Modifikator können Sie die Zeit ändern, z. B. eine Anzahl von Stunden hinzufügen, sie auf Ortszeit einstellen usw.
Syntax
Die Syntax von time()
Funktion geht so:
time(timestring, modifier, modifier, ...)
Die timestring
Das Argument muss eine gültige Zeitzeichenfolge sein.
Der modifier
Argumente sind optional. Sie können einen oder mehrere Modifikatoren angeben. Wenn Sie einen Modifikator angeben, muss es sich um einen gültigen Modifikator handeln.
Beispiel
Hier ist ein einfaches Beispiel, um time()
zu demonstrieren Funktion, die mit einem Argument verwendet wird.
SELECT time('now');
Ergebnis:
03:47:36
Der now
time-String wird in das aktuelle Datum und die aktuelle Uhrzeit konvertiert. Vorausgesetzt, ich verwende time()
Funktion wird nur der Zeitteil zurückgegeben.
Modifizierer hinzufügen
Wir können das vorherige Ergebnis mit einem Modifikator ändern. Hier ist ein Beispiel.
SELECT time('now', '+5 hours');
Ergebnis:
08:48:24
In diesem Fall habe ich der Zeit fünf Stunden hinzugefügt.
Mehrere Modifikatoren
Wie bereits erwähnt, können Sie einen oder mehrere Modifikatoren hinzufügen. Hier ist ein Beispiel für das Hinzufügen eines weiteren Modifikators zum vorherigen Beispiel.
SELECT time('now', '+5 hours', 'localtime');
Ergebnis:
18:50:08
Die localtime
Der Modifikator geht davon aus, dass die angegebene Zeitzeichenfolge in der koordinierten Weltzeit (UTC) angegeben ist. Anschließend wird die Zeitzeichenfolge so angepasst, dass die Ortszeit angezeigt wird.
Daher erhalten Sie je nach Ortszeit möglicherweise ein anderes Ergebnis.
String-Literal als Zeitstring
Die obigen Beispiele verwenden now
als Zeitzeichenfolge, aber Sie können jede gültige Zeitzeichenfolge angeben.
Hier sind ein paar andere Beispiele.
SELECT time('1999-12-18 17:10:23');
Ergebnis:
17:10:23
In diesem Fall wird einfach der Datumsteil aus dem Datum entfernt.
time() vs. strftime()
Die time()
Funktion gibt genau dasselbe Ergebnis zurück wie strftime('%H:%M:%S', ...)
kehrt zurück. Die time()
Funktion ist nur ein bequemerer Weg, dies zu tun.
SELECT
time('now'),
strftime('%H:%M:%S', 'now');
Ergebnis:
time('now') strftime('%H:%M:%S', 'now') ----------- --------------------------- 03:56:09 03:56:09
Zeitraum
Wie bei allen Datums- und Zeitfunktionen von SQLite ist time()
funktioniert nur für Daten zwischen 0000-01-01 00:00:00 und 9999-12-31 23:59:59 (julianische Tagesnummern 1721059.5 bis 5373484.5).
Für Daten außerhalb dieses Bereichs sind die Ergebnisse nicht definiert.