Datums- und Uhrzeitverarbeitungsfunktionen
Datum und Uhrzeit werden in entsprechenden Datentypen und speziellen Formaten gespeichert, sodass sie schnell und effektiv sortiert oder gefiltert werden können und physischen Speicherplatz sparen .
Normalerweise verwenden Anwendungen kein Format zum Speichern von Datum und Uhrzeit, daher werden immer Datums- und Uhrzeitfunktionen zum Lesen und Bearbeiten dieser Werte verwendet. Aus diesem Grund spielen Datums- und Uhrzeitfunktionen in der MySQL-Sprache eine wichtige Rolle.
In der folgenden Tabelle sind einige häufig verwendete Datums- und Uhrzeitverarbeitungsfunktionen aufgeführt:
Dies ist ein guter Zeitpunkt, um zu überprüfen, wo Daten gefiltert werden sollen. Bisher haben wir Daten mithilfe von Where-Klauseln gefiltert, die Zahlen und Text vergleichen. Daten müssen jedoch häufig nach Datum gefiltert werden. Das Filtern nach Datum erfordert einige zusätzliche Überlegungen und die Verwendung spezieller MySQL-Funktionen.
Als Erstes ist das von MySQL verwendete Datumsformat zu beachten. Wann immer Sie ein Datum angeben, sei es beim Einfügen oder Aktualisieren eines Tabellenwerts oder beim Filtern mit einer Where-Klausel, muss das Datum im Format jjjj-mm-tt vorliegen. Daher wird der 1. September 2005 als 01.09.2005 angegeben. Obwohl andere Datumsformate funktionieren könnten, ist dies das bevorzugte Datumsformat, da es Mehrdeutigkeiten ausschließt (z. B. ist der 04.05.06 der 4. Mai 2006 oder der 5. April). 2006 oder 6. Mai 2004 oder...).
Es sollte immer eine 4-stellige Jahreszahl verwendet werden. MySQL behandelt 00-69 als 2000-2069 und 70-99 als 1970-1999. Obwohl es sich möglicherweise um beabsichtigte Jahreszahlen handelt, ist die Verwendung vollständiger vierstelliger Jahreszahlen zuverlässiger, da MySQL keine Annahmen treffen muss.
Ein einfacher Datumsvergleich sollte also einfach sein:
Eingabe:
select cust_id,order_num from orders where order_date = '2005-09-01';
Ausgabe:
Analyse : Diese Select-Anweisung wird normal ausgeführt. Es ruft einen Bestelldatensatz ab, dessen Bestelldatum der 01.09.2005 ist.
Aber ist die Verwendung von where order_date = '2005-09-01' zuverlässig? Der Datentyp von order_date ist datetime. Dieser Typ speichert Datums- und Uhrzeitwerte. Die Werte in der Beispieltabelle haben alle einen Zeitwert von 00:00:00, in der Praxis ist dies jedoch wahrscheinlich nicht immer der Fall. Was passiert, wenn ich das Bestelldatum mit dem aktuellen Datum und der aktuellen Uhrzeit speichere? Wenn der gespeicherte Wert für „order_date“ beispielsweise „2005-09-01 11:30:05“ lautet, schlägt „wo order_date = ‚2005-09-01‘“ fehl. Selbst wenn eine Zeile mit diesem Datum angegeben wird, wird sie nicht abgerufen, da der Where-Abgleich fehlschlägt.
Die Lösung besteht darin, MySQL anzuweisen, das angegebene Datum nur mit dem Datumsteil in der Spalte zu vergleichen, anstatt das angegebene Datum mit dem gesamten Spaltenwert zu vergleichen. Hierzu muss die Funktion date() verwendet werden. Date(order_date) weist MySQL an, nur den Datumsteil der Spalte zu extrahieren. Eine zuverlässigere Select-Anweisung ist:
Eingabe:
select cust_id,order_num from orders where Date(order_date) = '2005-09-01';
Wenn Sie nur das Datum wollen, dann verwenden Sie Date( ) ist eine gute Vorgehensweise, auch wenn Sie wissen, dass die entsprechende Spalte nur Datumsangaben enthält. Auf diese Weise muss sich Ihr SQL-Code nicht ändern, wenn sich später aus irgendeinem Grund Datums- und Uhrzeitwerte in der Tabelle befinden. Natürlich gibt es auch eine Time()-Funktion, die Sie verwenden sollten, wenn Sie nur die Zeit benötigen.
Date() und Time() wurden beide zum ersten Mal in MySQL 4.1.1 eingeführt.
Sobald Sie wissen, wie Sie die Gleichheit mit Datumsangaben testen, ist die Verwendung anderer Operatoren klar.
Es gibt jedoch noch eine andere Art des Datumsvergleichs, die erklärt werden muss. Was ist, wenn Sie alle im September 2005 aufgegebenen Bestellungen abrufen möchten? Ein einfacher Gleichheitstest wird nicht funktionieren, da er auch mit der Anzahl der Tage im Monat übereinstimmen muss. Es gibt mehrere Lösungen, von denen eine so aussieht:
Eingabe:
select cust_id,order_num from orders where Date(order_date) between '2005-09-01' and '2005-09-30';
Ausgabe:
Analyse: wo , Der Between-Operator wird verwendet, um den 01.09.2005 und den 30.09.2005 als abzugleichenden Datumsbereich zu definieren.
Numerische Verarbeitungsfunktion
Numerische Verarbeitungsfunktion verarbeitet nur numerische Daten. Diese Funktionen werden im Allgemeinen hauptsächlich für algebraische, trigonometrische oder geometrische Operationen verwendet und werden daher nicht so häufig verwendet wie Funktionen zur Verarbeitung von Zeichenfolgen oder Datum/Uhrzeit.
Ironischerweise sind numerische Funktionen unter den Funktionen der großen DBMS die konsistentesten und einheitlichsten. In der folgenden Tabelle sind einige häufig verwendete numerische Verarbeitungsfunktionen aufgeführt:
Das obige ist der detaillierte Inhalt vonBeispiele für Datums- und Uhrzeitverarbeitungsfunktionen und numerische Verarbeitungsfunktionen (Verwendung von Datenverarbeitungsfunktionen 2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!