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

SQLite-Datums- und Zeitfunktionen

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