Dieser Artikel beschreibt anhand eines Beispiels die Intervallberechnung von MySQL Datum und Uhrzeit. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: Zunächst müssen wir uns klar machen, dass MySQL Intervallwerte hauptsächlich für Datums- und Zeitberechnungen verwendet werden. Wenn wir Intervallwerte erstellen möchten, können wir den folgenden Ausdruck verwenden: INTERVALL Ausdruckseinheit Dann müssen wir verstehen, dass das Schlüsselwort INTERVAL der Ausdruck ist, der den Intervallwert bestimmt, und die Einheit, die die Intervalleinheit angibt. Um beispielsweise ein 1-Tages-Intervall zu erstellen, verwenden wir den folgenden Ausdruck: INTERVALL 1 TAG Beachten Sie jedoch, dass bei INTERVAL und UNIT die Groß-/Kleinschreibung nicht beachtet wird, sodass der folgende Ausdruck dem obigen Ausdruck entspricht: Intervall 1 Tag Die tatsächliche Verwendung und Syntax von Intervallwerten für die Datums- und Zeitarithmetik ist im folgenden Code ersichtlich: Datum + INTERVAL-Ausdruckseinheit Datum - INTERVALL Ausdruckseinheit Intervallwerte werden auch von verschiedenen Zeitfunktionen wie DATE_ADD, DATE_SUB, TIMESTAMPADD und TIMESTAMPDIFF verwendet. MySQL definiert das Standardformat von Ausdruck und Einheit, wie in der folgenden Tabelle gezeigt:
Schauen wir uns ein Beispiel an. Die folgende SQL-Anweisung addiert 1 Tag zum Datum 2020-01-01 und gibt das Ergebnis als 2020-01-02 zurück: mysql> SELECT '2020-01-01' + INTERVALL 1 TAG; +-------------------------------+ | '2020-01-01' + INTERVALL 1 TAG | +-------------------------------+ | 02.01.2020 | +-------------------------------+ 1 Zeile im Satz (0,01 Sek.) Wenn wir einen Intervallwert in einem Ausdruck verwenden, der DATE- oder DATETIME-Werte enthält, und der Intervallwert auf der rechten Seite des Ausdrucks steht, können wir einen negativen Wert von expr verwenden, wie im folgenden Beispiel gezeigt: mysql> AUSWÄHLEN '2020-01-01' + INTERVALL -1 TAG; +--------------------------------+ | '01.01.2020' + INTERVALL -1 TAG | +--------------------------------+ | 31.12.2019 | +--------------------------------+ 1 Reihe im Set Sehen wir uns an, wie man mit DATE_ADD und DATE_SUB einen Monat zu einem Datumswert addiert/subtrahiert: mysql> SELECT DATE_ADD('2020-01-01', INTERVALL 1 MONAT) 1_MONAT_SPÄTER, DATE_SUB('2020-01-01',INTERVALL 1 MONAT) 1_MONAT_VORHER; +---------------+----------------+ | 1_MONAT_SPÄTER | 1_MONAT_VORHER | +---------------+----------------+ | 01.02.2020 | 01.12.2019 | +---------------+----------------+ 1 Reihe im Set Sehen wir uns eine SQL-Anweisung an, die die Funktion TIMESTAMPADD(Einheit, Intervall, Ausdruck) verwendet, um einem Zeitstempelwert 30 Minuten hinzuzufügen: mysql> TIMESTAMPADD AUSWÄHLEN(MINUTE,30,'2020-01-01') 30_MINUTES_SPÄTER; +---------------------+ | 30_MINUTE_SPÄTER | +---------------------+ | 01.01.2020 00:30:00 | +---------------------+ 1 Reihe im Set Nach all dem sind Sie vielleicht noch etwas verwirrt. Keine Sorge, schauen wir uns die spezifischen Operationen an. Zur Demonstration erstellen wir eine neue Tabelle namens Mitgliedschaften: CREATE TABLE-Mitgliedschaften ( ID INT AUTO_INCREMENT PRIMARY KEY, E-Mail VARCHAR (355) NICHT NULL, Plan VARCHAR (255) NICHT NULL, abgelaufenes_Datum DATUM NICHT NULL ); In der obigen Mitgliedschaftstabelle speichert die Spalte expired_date das Ablaufdatum der Mitgliedschaft jedes Mitglieds. Fügen wir nun einige Daten in die Mitgliedschaftstabelle ein: INSERT INTO-Mitgliedschaften (E-Mail, Plan, Ablaufdatum) WERTE('[email protected]','Gold','2018-07-13'), ('[email protected]','Platin','10.07.2018'), ('[email protected]','Silber','2018-07-15'), ('[email protected]','Gold','2018-07-20'), ('[email protected]','Silber','08.07.2018'); Nehmen wir nun an, dass heute der 06.07.2018 ist, und fragen dann mithilfe von SQL-Anweisungen Mitglieder ab, deren Mitgliedschaft in den nächsten 7 Tagen abläuft: WÄHLEN E-Mail, planen, Ablaufdatum, DATEDIFF(Ablaufdatum, '2018-07-06') verbleibende Tage AUS Mitgliedschaften WO „06.07.2018“ ZWISCHEN DATE_SUB (Ablaufdatum, INTERVALL 7 TAGE) UND Ablaufdatum; Nach der Ausführung der obigen Abfrageanweisung werden die folgenden Ergebnisse erhalten: +--------------------------+----------+--------------+----------------+ | E-Mail | Plan | Ablaufdatum | verbleibende Tage | +--------------------------+----------+--------------+----------------+ | [email protected] | Gold | 13.07.2018 | 7 | | [email protected] | Platin | 10.07.2018 | 4 | | [email protected] | Silber | 08.07.2018 | 2 | +--------------------------+----------+--------------+----------------+ 3 Reihen im Set Im obigen SQL subtrahiert die Funktion DATE_SUB 7 Tage vom durch den Intervallwert (INTERVAL 7 DAY) angegebenen Ablaufdatum. Das heißt, wenn das ursprüngliche Datum eines bestimmten Datums der 13. minus sieben Tage ist, ist es der 6. So ungefähr ist die Bedeutung. Ich glaube, jeder hat eine gewisse Vorstellung davon. Das ist alles für heute. Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „MySQL-Abfragekenntnisse“, „MySQL-Transaktionsoperationskenntnisse“, „MySQL-gespeicherte Prozedurkenntnisse“, „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“ und „Zusammenfassung der allgemeinen MySQL-Funktionen“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: Anleitung zur Verwendung von env in vue cli
Der „Abbrechen“-Button ist nicht Teil des notwend...
In diesem Artikel erfahren Sie, wie Sie ziehbare ...
In diesem Artikel wird der spezifische JS-Code zu...
Dieser Artikel zeichnet das Installationstutorial...
CSS-Operationen CSS $("").css(name|pro|...
In diesem Artikelbeispiel wird der spezifische Co...
Einführung Mit EXISTS wird geprüft, ob eine Unter...
vue+element UI kapselt eine öffentliche Funktion ...
(Win7-System) Tutorial zur Installation einer vir...
Inhaltsverzeichnis Gedanken, die durch eine Onlin...
1. Flex-Richtung: (Richtung der Elementanordnung)...
MySQL-Ansichten Einfach ausgedrückt ist eine MySQ...
Inhaltsverzeichnis 1. Einleitung 2. Installation ...
Inhaltsverzeichnis MySQL initialisieren MySQL-Die...
Ich habe viel online gesucht und festgestellt, da...