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

SQLite-Datum und -Uhrzeit

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.SSSCode 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.