Zusammenfassung :In diesem Tutorial zeigen wir Ihnen, wie Sie mit den SQLite-Datums- und Zeitwerten arbeiten und die integrierten Datums- und Zeitfunktionen verwenden, um Datums- und Zeitwerte zu verarbeiten.
SQLite unterstützt keine integrierte Datums- und/oder Zeitspeicherklasse. Stattdessen nutzt es einige integrierte Datums- und Zeitfunktionen, um andere Speicherklassen wie TEXT
zu verwenden , REAL
, oder INTEGER
zum Speichern der Datums- und Uhrzeitwerte.
Mit dem TEXT
Speicherklasse zum Speichern von SQLite-Datum und -Zeit
Wenn Sie den TEXT
verwenden Speicherklasse zum Speichern von Datums- und Uhrzeitwerten müssen Sie das ISO8601-Zeichenfolgenformat wie folgt verwenden:
YYYY-MM-DD HH:MM:SS.SSS
Code language: SQL (Structured Query Language) (sql)
Beispiel:2016-01-01 10:20:05.123
Erstellen Sie zunächst eine neue Tabelle mit dem Namen datetime_text
zur Demonstration.
CREATE TABLE datetime_text(
d1 text,
d2 text
);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Die Tabelle enthält zwei Spalten d1
und d2
mit TEXT
Datentyp.
Zum Einfügen von Datums- und Zeitwerten in den datetime_text
Tabelle verwenden Sie die DATETIME
Funktion.
Um beispielsweise den aktuellen UTC-Wert für Datum und Uhrzeit zu erhalten, übergeben Sie die nun wörtliche Zeichenfolge wie folgt an die Funktion:
SELECT datetime('now');
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Um die Ortszeit zu erhalten, übergeben Sie ein zusätzliches Argument localtime
.
SELECT datetime('now','localtime');
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Zweitens fügen Sie die Datums- und Zeitwerte in den datetime_text
ein Tabelle wie folgt:
INSERT INTO datetime_text (d1, d2)
VALUES(datetime('now'),datetime('now', 'localtime'));
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Drittens fragen Sie die Daten aus datetime_text
ab Tabelle.
SELECT
d1,
typeof(d1),
d2,
typeof(d2)
FROM
datetime_text;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Mit REAL
Speicherklasse zum Speichern von SQLite-Datums- und Zeitwerten
Sie können den REAL
verwenden Speicherklasse zum Speichern der Datums- und/oder Zeitwerte als julianische Tageszahlen, was der Anzahl der Tage seit dem Mittag in Greenwich am 24. November 4714 v. basierend auf dem proleptischen gregorianischen Kalender.
Sehen wir uns ein Beispiel für die Verwendung der REAL-Speicherklasse zum Speichern von Datums- und Uhrzeitwerten an.
Erstellen Sie zuerst eine neue Tabelle mit dem Namen datetime_real
.
CREATE TABLE datetime_real(
d1 real
);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Zweitens fügen Sie den „aktuellen“ Datums- und Uhrzeitwert in datetime_real
ein Tabelle.
INSERT INTO datetime_real (d1)
VALUES(julianday('now'));
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Wir haben den julianday()
verwendet Funktion, um das aktuelle Datum und die aktuelle Uhrzeit in den Julianischen Tag umzuwandeln.
Drittens, fragen Sie Daten von datetime_real
ab Tabelle.
SELECT d1 FROM datetime_real;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Die Ausgabe ist nicht lesbar.
Glücklicherweise können Sie das eingebaute date()
verwenden und time()
Funktionen zum Formatieren eines Datums- und Uhrzeitwerts wie folgt:
SELECT
date(d1),
time(d1)
FROM
datetime_real;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Mit INTEGER
zum Speichern von SQLite-Datums- und Zeitwerten
Neben TEXT
und REAL
Speicherklassen können Sie den INTEGER
verwenden Speicherklasse zum Speichern von Datums- und Zeitwerten.
Wir verwenden normalerweise den INTEGER
um die UNIX-Zeit zu speichern, die die Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC
ist . Siehe folgendes Beispiel:
Erstellen Sie zunächst eine Tabelle mit einer Spalte, deren Datentyp INTEGER
ist zum Speichern der Datums- und Zeitwerte.
CREATE TABLE datetime_int (d1 int);
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Zweitens fügen Sie den aktuellen Datums- und Zeitwert in datetime_int
ein Tabelle.
INSERT INTO datetime_int (d1)
VALUES(strftime('%s','now'));
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Drittens, fragen Sie Daten von datetime_int
ab Tabelle.
SELECT d1 FROM datetime_int;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Es ist eine Ganzzahl.
Um das Ergebnis zu formatieren, können Sie das eingebaute datetime()
verwenden funktionieren wie folgt:
SELECT datetime(d1,'unixepoch')
FROM datetime_int;
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Mit SQLite können Sie beliebige Datentypen zum Speichern von Datums- und Uhrzeitwerten frei wählen und die integrierte Datums- und Uhrzeitfunktion verwenden, um zwischen Formaten zu konvertieren.
Ausführliche Informationen zu Datums- und Uhrzeitfunktionen von SQLite finden Sie in den integrierten Datums- und Uhrzeitfunktionen.
In diesem Tutorial haben Sie gelernt, wie man TEXT
verwendet , REAL
, und INTEGER
Speicherklassen zum Speichern von Datums- und Uhrzeitwerten. Außerdem haben Sie gelernt, wie Sie die integrierten Datums- und Uhrzeitfunktionen verwenden, um die gespeicherten Datums- und Uhrzeitwerte in lesbare Formate umzuwandeln.