SQLite unterstützt fünf Funktionen zum Arbeiten mit Datums- und Zeitangaben. Diese sind:
date()
time()
datetime()
julianday()
strftime()
Alle diese Funktionen akzeptieren eine Zeitzeichenfolge als Argument. Sie akzeptieren auch andere Argumente zum Modifizieren/Formatieren der Ausgabe.
Die strftime()
Funktion ist die vielseitigste Funktion der fünf. Tatsächlich kann diese Funktion alles, was die anderen vier können.
Mit anderen Worten, Sie könnten strftime()
verwenden für alle Ihre Datums- und Zeitformatierungsanforderungen. Die anderen vier Funktionen sind nur aus praktischen Gründen verfügbar.
Syntax
Die Syntax jeder Funktion ist wie folgt:
date(timestring, modifier, modifier, ...)
time(timestring, modifier, modifier, ...)
datetime(timestring, modifier, modifier, ...)
julianday(timestring, modifier, modifier, ...)
strftime(format, timestring, modifier, modifier, ...)
Bei den ersten vier Funktionen ist das erste Argument eine Zeitzeichenfolge und alle nachfolgenden Argumente sind Modifikatoren.
Im strftime()
Funktion ist das erste Argument die Formatzeichenfolge, gefolgt von der Zeitzeichenfolge und allen Modifikatoren.
Alle gültigen Zeitzeichenfolgen und Modifikatoren sind am Ende dieses Artikels aufgelistet.
Aber lassen Sie uns zuerst einige kurze Beispiele für jede dieser Funktionen durchgehen.
Die Funktion date()
Sie können das date()
verwenden Funktion mit einem Argument oder mit mehreren Argumenten.
Hier ist ein Beispiel mit nur einem Argument:
SELECT date('now');
Ergebnis:
2020-04-23
Hier ist ein Beispiel, das einen Modifikator verwendet:
SELECT date('now', 'localtime');
Ergebnis:
2020-04-24
In diesem Fall habe ich die localtime
verwendet Modifikator. Dieser Modifikator geht davon aus, dass die Zeitzeichenfolge in der koordinierten Weltzeit (UTC) vorliegt, und passt die Zeitzeichenfolge so an, dass sie die Ortszeit anzeigt.
Die time()-Funktion
Die time()
Funktion ähnelt dem date()
Funktion, außer dass sie statt des Datums die Uhrzeit ausgibt.
Hier ist ein Beispiel:
SELECT time('now');
Ergebnis:
00:02:05
Und hier ist es mit der localtime
Modifikator:
SELECT time('now', 'localtime');
Ergebnis:
10:02:09
Die datetime()-Funktion
Das SQLite datetime()
-Funktion kombiniert die beiden vorherigen Funktionen in dem Sinne, dass sie sowohl das Datum als auch die Uhrzeit ausgibt.
Hier ist ein Beispiel:
SELECT datetime('now');
Ergebnis:
"2020-04-24 00:04:13"
Und hier ist es mit der localtime
Modifikator:
SELECT datetime('now', 'localtime');
Ergebnis:
"2020-04-24 10:04:46"
Die julianday()-Funktion
Der julianday()
Die Funktion gibt die kontinuierliche Zählung der Tage seit dem Beginn der Julianischen Periode zurück, das ist Montag, der 1. Januar 4713 v. Chr., proleptischer julianischer Kalender (24. November 4714 v. Chr., im proleptischen gregorianischen Kalender).
So sieht es aus, wenn Sie now
verwenden als Zeitzeichenfolge:
SELECT julianday('now');
Ergebnis:
2458963.50964815
Und hier wird die localtime
verwendet Modifikator:
SELECT julianday('now', 'localtime');
Ergebnis:
2458963.92637685
Die strftime()-Funktion
Wie bereits erwähnt, die strftime()
Funktion kann verwendet werden, um Datums- und Zeitwerte in jedem der in den vorherigen Funktionen verfügbaren Formate auszugeben.
Mit dieser Funktion können Sie sehr genau festlegen, wie Ihre Datums-/Zeitwerte formatiert werden. Es ermöglicht Ihnen, das genaue Format bereitzustellen, das Sie präsentieren möchten.
Die Syntax dieser Funktion sieht folgendermaßen aus:
strftime(format, timestring, modifier, modifier, ...)
Beachten Sie, dass das erste Argument format
ist . Hier geben Sie das Format an, in dem die Zeitzeichenfolge ausgegeben werden soll.
Die Formatzeichenfolge für strftime()
kann aus einer der folgenden Ersetzungen bestehen:
%d | Tag des Monats:00 |
%f | Sekundenbruchteile:SS.SSS |
%H | Stunde:00-24 |
%j | Jahrestag:001-366 |
%J | Julianische Tageszahl |
%m | Monat:01-12 |
%M | Minute:00-59 |
%s | Sekunden seit dem 01.01.1970 |
%S | Sekunden:00-59 |
%w | Wochentag 0-6 mit Sonntag==0 |
%W | Woche des Jahres:00-53 |
%Y | Jahr:0000-9999 |
%% | % |
Hier ist ein Beispiel:
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now');
Ergebnis:
"2020-04-24 00:43:51"
In diesem Fall erhalten wir dasselbe Ergebnis wie bei Verwendung von datetime()
Funktion.
Hier ist es mit der localtime
Modifikator:
SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime');
Ergebnis:
"2020-04-24 10:45:27"
Wieder dasselbe Ergebnis wie bei datetime()
. Der Unterschied ist strftime()
ermöglicht es uns, das Format der Ausgabe explizit anzugeben.
Zum Beispiel:
SELECT strftime('%d/%m/%Y %H:%M:%S', 'now', 'localtime');
SELECT strftime('%m/%d/%Y (%H:%M:%S)', 'now', 'localtime');
SELECT strftime('%H:%M:%S on %d/%m/%Y', 'now', 'localtime');
Ergebnis:
"24/04/2020 10:49:41" "04/24/2020 (10:52:24)" "10:51:13 on 24/04/2020"
Gültige Formate für Zeitzeichenfolgen
Das Zeitstring-Argument in allen Datums-/Uhrzeitfunktionen kann in einem der folgenden Formate bereitgestellt werden:
- JJJJ-MM-TT
- JJJJ-MM-TT HH:MM
- JJJJ-MM-TT HH:MM:SS
- JJJJ-MM-TT HH:MM:SS.SSS
- JJJJ-MM-TTTHH:MM
- JJJJ-MM-TTTHH:MM:SS
- JJJJ-MM-TTTHH:MM:SS.SSS
- HH:MM
- HH:MM:SS
- HH:MM:SS.SSS
- jetzt
- DDDDDDDDDD
Gültige Modifikatoren
Sie können jeden der folgenden Modifikatoren mit Datums-/Uhrzeitfunktionen verwenden:
- NNN Tage
- NNN Stunden
- NNN Minuten
- NNN.NNNN Sekunden
- NNN Monate
- NNN Jahre
- Anfang des Monats
- Jahresanfang
- Tagesbeginn
- Wochentag N
- Unix-Epoche
- Ortszeit
- utc
Das N
bezieht sich auf eine Zahl, die dem Datum hinzugefügt wird, basierend auf der angegebenen Einheit.
Zum Beispiel:
SELECT
date('now'),
date('now', '3 days');
Ergebnis:
date('now') date('now', '3 days') ----------- --------------------- 2020-04-24 2020-04-27
Hier ist einer, der start of month
verwendet als Modifikator:
SELECT
date('now'),
date('now', 'start of month');
Ergebnis:
date('now') date('now', 'start of month') ----------- ----------------------------- 2020-04-24 2020-04-01