Die SQLite strftime()
Mit der Funktion können Sie einen Datums- und Uhrzeitwert in einem bestimmten Format zurückgeben.
Der tatsächlich zurückgegebene Datums-/Uhrzeitwert basiert auf einer Zeitzeichenfolge, die Sie beim Aufrufen der Funktion als Argument angeben, sowie auf allen Modifikatoren, die Sie (als optionale Argumente) einschließen. Mit einem Modifikator können Sie das Datum ändern, z. B. eine Anzahl von Tagen hinzufügen, es auf Ortszeit einstellen usw.
Syntax
Die Syntax lautet wie folgt:
strftime(format, timestring, modifier, modifier, ...)
Das format
Das Argument kann eine beliebige Kombination gültiger Format-String-Ersetzungen für strftime()
sein Funktion.
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 Beispiel zur Veranschaulichung.
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now');
Ergebnis:
2020-04-29 01:29:54
Der now
Zeitzeichenfolge wird basierend auf der bereitgestellten Formatzeichenfolge in das aktuelle Datum und die aktuelle Uhrzeit konvertiert.
In diesem Fall gibt meine Formatzeichenfolge genau dasselbe Ergebnis zurück wie datetime('now')
zurückgekehrt wäre.
Modifizierer hinzufügen
Wir können das vorherige Ergebnis mit einem Modifikator ändern. Hier ist ein Beispiel.
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', '+2 hours');
Ergebnis:
2020-04-29 03:31:50
In diesem Fall habe ich die Zeit um zwei Stunden verlängert.
Mehrere Modifikatoren
Sie können mehrere Modifikatoren hinzufügen. Hier ist ein Beispiel für das Hinzufügen eines weiteren Modifikators zum vorherigen Beispiel.
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', '+2 hours', 'localtime');
Ergebnis:
2020-04-29 13:33:22
In meinem Fall die localtime
Modifikator bewirkte, dass die Zeit nach vorne verschoben wurde.
Das liegt daran, dass 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.
Abhängig von Ihrer Ortszeit erhalten Sie möglicherweise ein anderes Ergebnis.
Hier wird wieder die ursprüngliche Ortszeit mit dem geänderten Ergebnis verglichen:
SELECT
strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime') AS "Local",
strftime('%Y-%m-%d %H:%M:%S', 'now', '+2 hours', 'localtime') AS "Modified";
Ergebnis:
Local Modified ------------------- ------------------- 2020-04-29 11:34:57 2020-04-29 13:34:57
Unix/Epochenzeit
Sie können den %s
verwenden Formatzeichenfolge (Kleinbuchstaben), um die Epochenzeit zu berechnen.
SELECT strftime('%s', 'now');
Ergebnis:
1588124826
Die Epochenzeit (auch bekannt als Epochenzeit, POSIX-Zeit, Sekunden seit der Epoche oder UNIX-Epochenzeit) ist die Anzahl der Sekunden seit dem 1.1.1970.
Die Unix-Zeit wird häufig in Betriebssystemen und Dateiformaten verwendet.
Julianischer Tag
Sie können %J
verwenden um den Julianischen Tag zurückzugeben.
Julian Day ist die Anzahl der Tage seit dem Mittag in Greenwich am 24. November 4714 v. (unter Verwendung des proleptischen gregorianischen Kalenders).
Bei Verwendung des proleptischen julianischen Kalenders ist dies Montag, der 1. Januar 4713 v. Chr.
Der Julianische Tag wird normalerweise von Astronomen, Software usw. verwendet, um die verstrichenen Tage zwischen zwei Ereignissen zu berechnen.
So geben Sie den Julianischen Tag mit strftime()
zurück Funktion.
SELECT strftime('%J', 'now');
Ergebnis:
2458968.575441667
Eine andere Möglichkeit, dies in SQLite zu tun, ist die Verwendung von julianday()
Funktion.
Zeitraum
Wie bei allen Datums- und Zeitfunktionen von SQLite ist strftime()
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.