In diesem Artikel wird hauptsächlich die Methode der MySql-Abfrage vorgestellt, einschließlich der traditionellen Abfragemethode für Zeitfelder und UNIX-Zeitstempel, die von großem praktischen Wert ist Wer es braucht, kann sich darauf beziehen
Das Beispiel in diesem Artikel beschreibt die Methode zum Abfragen des Zeitraums in MySql. Teilen Sie es als Referenz mit allen. Die spezifischen Methoden sind wie folgt:
Möglicherweise weiß nicht jeder, wie man den Zeitraum in MySql abfragt. Hier sind zwei Methoden zum Abfragen des Zeitraums in MySql als Referenz.
Die Zeitfelder von MySql umfassen Datum, Uhrzeit, Datum/Uhrzeit, Zeitstempel usw. Wenn wir Daten speichern, speichern wir oft die gesamte Zeit in einem Feld, wobei wir den Datum/Uhrzeit-Typ verwenden , das heißt, ein Feld speichert das Datum und ein Feld speichert die Zeit. Unabhängig davon, wie es gespeichert ist, gibt es in tatsächlichen Anwendungen wahrscheinlich Abfragen, die den Typ „Zeitraum“ enthalten. Beispielsweise muss eine Zugriffsdatensatzdatenbank die Anzahl der Besuche pro Tag zählen, und jeder Tag ist ein Zeitraum. Im Folgenden werden zwei gängige Methoden zum Abfragen von Zeiträumen in MySql vorgestellt. Auch andere Datenbanken können auf ähnliche Weise implementiert werden.
Methode 1: Traditionelle Methode , das heißt, geben Sie die Start- und Endzeit an und verwenden Sie „zwischen“ oder „<“, „>“, um Bedingungen festzulegen, z Abfrage März 2010 Für die Anzahl der Datenelemente vom 1. bis 2. März 2010 können Sie
verwenden und der Code lautet wie folgt:
select count(*) from sometable where datetimecolumn>='2010-03-01 00:00:00' and datetimecolumn<'2010-03-02 00:00:00'
Allerdings ist diese Methode ist keine -Ganzzahl, da die Zeitdaten vom Typ sind. Daher ist der Vergleich weniger effizient. Wenn die Datenmenge groß ist, kann die Zeit in einen ganzzahligen UNIX-Zeitstempel umgewandelt werden. Dies ist Methode zwei.
Methode 2: UNIX-Zeitstempel , jedes Mal entspricht einem eindeutigen UNIX-Zeitstempel, der Zeitstempel reicht von „1970-01-01 00:00:00“ bis 0. Starten Sie die Zeitmessung und erhöhen Sie sie um 1 pro Sekunde. MySql verfügt über eine integrierte -Funktion für den Austausch von traditioneller Zeit und UNIX-Zeit, die wie folgt lauten:
UNIX_TIMESTAMP(datetime)
FROM_UNIXTIME(unixtime)
Zum Beispiel , run
Der Code lautet wie folgt:
SELECT UNIX_TIMESTAMP('2010-03-01 00:00:00')
Gibt 1267372800 zurück
Run
Der Code lautet wie folgt:
SELECT FROM_UNIXTIME(1267372800)
Gibt „2010-03-01 00 :00:00“ zurück
So können wir die Daten im Zeitfeld durch die ganzzahlige UNIX-Zeit ersetzen. Auf diese Weise wird die Vergleichszeit zu einem ganzzahligen Vergleich . Nach der Erstellung des Index kann die Effizienz erheblich verbessert werden. Bei der Abfrage müssen Sie zum Vergleich die Startzeit und die Endzeit jeweils in UNIX-Zeit konvertieren, z. B.:
Der Code lautet wie folgt:
select count(*) from sometable where datetimecolumn>=UNIX_TIMESTAMP('2010-03-01 00:00:00') and datetimecolumn<UNIX_TIMESTAMP('2010-03-02 00:00:00')
kann auch sein Wird im aufrufenden Programm verwendet. Konvertieren Sie es zuerst in die UNIX-Zeit und übergeben Sie es dann an MySql. Kurz gesagt, diese Methode ist hilfreich, um den Zeitraum schnell abzufragen, aber die Anzeigezeit muss erneut umgekehrt werden.
Das obige ist der detaillierte Inhalt vonBeispielcode für die MySql-Abfragezeitraummethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!