Automatischer Zeitstempel in SQLite
- Zeitstempel zur SQLite-Datenbank hinzufügen
-
Verwenden Sie in SQLite den Datentyp
Datetime
oder Timestamp -
Rufen Sie
DateTime
aus der SQLite-Tabelle ab - Abrufen von Datum und Uhrzeit in SQLite
- Textspeicherklasse für SQLite-Datum und -Zeit
In der Sprache C# verwenden wir die SQLite-Datenbank, um Werte aus der Datenbank zu speichern und abzurufen. Die Datenbank kann verschiedene Tabellen mit Zeilen und Spalten enthalten. Sobald wir der Tabelle einen neuen Datensatz hinzufügen, wird eine neue Zeile mit einem Zeitstempel als null
hinzugefügt. Wenn wir einen Zeitstempel benötigen, können wir sehen, wann eine neue Zeile oder bestimmte Informationen zur Tabelle mit datums- und zeitspezifischem Format hinzugefügt werden. Um einen automatischen Zeitstempel zu erhalten, rufen wir Informationen als Datentyp Datetime
oder Datum und Uhrzeit als separate Informationen ab.
Zeitstempel zur SQLite-Datenbank hinzufügen
Die beste Lösung, um der SQLite-Datenbank einen Zeitstempel hinzuzufügen, besteht darin, beim Erstellen der Tabelle in der Datenbank ein Feld mit Timestamp
mit dem Datentyp DATETIME
hinzuzufügen. Der Datentyp des Timestamp
sollte in der SQLite-Datenbank DateTime
sein.
CREATE TABLE NameOfTheTable(
myID INTEGER PRIMARY KEY,
First_Name TEXT,
Other FIELDS (if needed),
Timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);
Ausgang:
Creates the table with provided fields and last field timestamp
Wenn es einen neuen Eintrag in dieser Tabelle gibt, fügt die Tabelle eine neue Zeile mit den bereitgestellten Informationen und der aktuellen Uhrzeit in das Feld TimeStamp
ein. Dieses Feld kann jedoch mit NULL
gefüllt werden, wenn der Benutzer es explizit auf einen NULL
-Wert setzt.
Beispielsweise möchten wir mit den folgenden Befehlen verschiedene Zeilen in die oben erstellte Tabelle einfügen.
INSERT INTO NameOfTheTable(First_Name, sqltime) VALUES('case1', '2020-07-28T15:36:56.200');
INSERT INTO NameOfTheTable(First_Name, sqltime) VALUES('case2', '2020-10-28T13:40:02.200');
# here, the time value will be recorded as NULL
INSERT INTO NameOfTheTable(First_Name) VALUES('case3');
Jetzt müssen wir den Befehl SELECT
verwenden, um alle Datensätze in der Tabelle anzuzeigen.
SELECT * FROM NameOfTheTable;
Ausgang:
1:case1:2020-07-28T15:36:56.200
2:case2:2020-07-28T15:36:56.200
3:case3:2022-11-11 05:38:20
Verwenden Sie in SQLite den Datentyp Datetime
oder Timestamp
Wenn wir in SQLite die Änderungen innerhalb des Datensatzes nachverfolgen müssen, werden diese Datensätze mit dem Zeitstempel-Datentyp aktualisiert. Wenn wir also eine bestimmte Zeit mit einem Feld wünschen, müssen wir den Datentyp DateTime
für ein Feld verwenden.
Wir sollten immer den Datentyp DateTime
auswählen, wenn ein Vergleich zwischen dem UNIX-Zeitstempel oder einem nativen SQLite-Feld DateTime
stattfindet, da wir die folgenden Berechnungen mit dem nativen Datentyp DateTime
durchführen können.
SELECT DATE_ADD(my_datetime, INTERVAL 1 DAY)
Mit diesem Befehl können wir auch das Format von DateTime
auf den UNIX-Zeitstempel ändern.
SELECT UNIX_TIMESTAMP(my_datetime)
Rufen Sie DateTime
aus der SQLite-Tabelle ab
Wenn wir den Datentyp DateTime
in die SQLite-Datenbank einfügen, wird dieser zuerst in den Typ String konvertiert und dann in die Tabelle eingefügt. Wenn wir die Daten des Datentyps DateTime
abrufen, konvertiert das sqlite3-Modul sie ebenfalls zuerst in einen String.
Nehmen wir ein Beispiel, um das Konzept zu verstehen. Die Funktion insertQuery()
nimmt drei Parameter als id (Primärschlüssel wird automatisch erhöht, wenn der Tabelle ein neuer Datensatz hinzugefügt wird), my_name (nicht leeres Zeichenfolgenfeld zum Speichern von Namen) und schließlich join_date (mit dem Datentypformat timestamp ).
Außerdem gibt dieses Programm die Uhrzeit nicht im String-Format zurück, sondern im Timestamp-Format.
import datetime
import sqlite3
def insertQuery(id, my_name, joiningDate):
try:
sqliteConnection = sqlite3.connect(
"SQLite.db", detect_types=sqlite3.PARSE_DECLTYPES | sqlite3.PARSE_COLNAMES
)
cursor = sqliteConnection.cursor()
print("SQLite Database is connected.")
# query to create a new table with three fields
sqlite_create_table_query = """CREATE TABLE new_table (
id INTEGER PRIMARY KEY,
my_name TEXT NOT NULL,
joiningDate timestamp);"""
cursor = sqliteConnection.cursor()
cursor.execute(sqlite_create_table_query)
# insert the new table information here
sqlite_insert_with_param = """INSERT INTO 'new_table'
('id', 'my_name', 'joiningDate')
VALUES (?, ?, ?);"""
data_tuple = (id, my_name, joiningDate)
cursor.execute(sqlite_insert_with_param, data_tuple)
sqliteConnection.commit()
print("New record added successfully \n")
# to get the timestamp information from the table
sqlite_select_query = (
"""SELECT my_name, joiningDate from new_table where id = ?"""
)
cursor.execute(sqlite_select_query, (1,))
records = cursor.fetchall()
# the return type of datetime is not string now.
for row in records:
developer = row[0]
joining_Date = row[1]
print(developer, " joined on", joiningDate)
print("Date type is ", type(joining_Date))
cursor.close()
# if an exception is found in sqlite version 3.
except sqlite3.Error as error:
print("Error with SQLite database", error)
finally:
if sqliteConnection:
sqliteConnection.close()
print("Closed connection for SQLite database.")
insertQuery(0, "NewName", datetime.datetime.now())
Ausgang:
SQLite Database is connected.
New record added successfully
NewName joined on 2019-06-28 20:57:32.352790
Date type is <class 'datetime.datetime'>
Closed connection for SQLite database.
Abrufen von Datum und Uhrzeit in SQLite
Für Unix-Zeitstempel kann die Funktion in SQLite DATETIME()
mit einem Argument unixepoch
verwendet werden, um das tatsächliche Datum und die Uhrzeit zu berechnen. Alternativ können wir die Funktion DATE()
verwenden, um nur die Datumsinformationen zu erhalten, und die Funktion TIME()
, um den Zeitabschnittsteil zurückzugeben.
Holen Sie sich das Datum und die Uhrzeit
SELECT DATETIME(1793956207, 'unixepoch');
Ausgang:
2022-11-06 10:09:03
Holen Sie sich das Datum
SELECT DATE(1793956207, 'unixepoch');
Ausgang:
2022-11-06
Holen Sie sich die Zeit
SELECT TIME(1793956207, 'unixepoch');
Ausgang:
10:09:03
Textspeicherklasse für SQLite-Datum und -Zeit
In SQLite verwenden wir die integrierten Methoden, um Datum und Uhrzeit in der Datenbank zu behandeln. Im Gegensatz zu SQLite, wo sie über integrierte Klassen verfügen, um mit ihnen zu interagieren, verfügt die SQLite-Datenbank über integrierte Funktionen für Datum und Uhrzeit zu ihrer Unterstützung.
Wenn wir die Speicherklasse TEXT
zum Einstellen von Datum und Uhrzeit in der SQLite-Datenbank verwenden, müssen wir das folgende Format verwenden.
YYYY-MM-DD HH:MM:SS.SSS
Dieses Format ergibt 2019-02-02 11:21:08.321
.