SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Funktionsweise der Time()-Funktion in SQLite

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.