Detaillierte Erklärung des TIMESTAMPDIFF-Falls in MySQL

Detaillierte Erklärung des TIMESTAMPDIFF-Falls in MySQL

1. Syntax

TIMESTAMPDIFF(Einheit, Beginn, Ende); Gibt die Zeitdifferenz entsprechend der Einheit zurück. Die Datenstrukturen des übergebenen Beginns und Endes müssen nicht identisch sein. Eine kann Date und die andere DateTime sein.

2. Einheit

Zu den unterstützten Einheiten gehören:

  • MIKROSEKUNDE
  • ZWEITE
  • MINUTE
  • STUNDE
  • TAG
  • WOCHE
  • MONAT
  • QUARTAL
  • JAHR

3. Beispiel

Das folgende Beispiel ist die grundlegendste Verwendung von TIMESTAMPDIFF.

  • 3.1 Wie viele Monate liegen zwischen 01.01.2017 und 01.02.2017
SELECT TIMESTAMPDIFF(MONTH, '2017-01-01', '2017-02-01') als Ergebnis;

+--------+
| Ergebnis |
+--------+
| 1 |
+--------+
1 Zeile im Satz (0,00 Sek.)
  • 3.2 Wie viele Tage liegen zwischen dem 01.01.2017 und dem 01.02.2017?
SELECT TIMESTAMPDIFF(DAY, '2017-01-01', '2017-02-01') als Ergebnis;

+--------+
| Ergebnis |
+--------+
| 31 |
+--------+
1 Zeile im Satz (0,00 Sek.)
  • 3.3 Wie viele Minuten liegen zwischen 2017-01-01 08: 00:00 - 2017-01-01 08: 55:00
SELECT TIMESTAMPDIFF(MINUTE, '2017-01-01 08:00:00', '2017-01-01 08:55:00') Ergebnis;

+--------+
| Ergebnis |
+--------+
| 55 |
+--------+
1 Zeile im Satz (0,00 Sek.)
  • 3.4 Wie viele Minuten liegen zwischen 2017-01-01 08: 00:00 - 2017-01-01 08: 55:33
SELECT TIMESTAMPDIFF(MINUTE, '2017-01-01 08:00:00', '2017-01-01 08:55:33') Ergebnis;

+--------+
| Ergebnis |
+--------+
| 55 |
+--------+
1 Zeile im Satz (0,00 Sek.)
  • 3.5 Bei der Berechnung des DIFF für TAG und MINUTE werden der entsprechende TAG und die MINUTE direkt abgezogen.

  • 3.6 Wie wird SECOND berechnet?
SELECT TIMESTAMPDIFF(SEKUNDE, '2017-01-01 08:00:00', '2017-01-01 08:55:33') Ergebnis;

55 * 60 + 33 = 3333
+--------+
| Ergebnis |
+--------+
| 3333 |
+--------+
1 Zeile im Satz (0,00 Sek.)
  • 3.7 So finden Sie den Unterschied zwischen zwei Datumsfeldern in der Datenbank
    • 3.7.1 Erstellen einer Tabelle
      CREATE TABLE-Demo (ID INT AUTO_INCREMENT PRIMARY KEY, Startzeit DATUM NICHT NULL, Endzeit DATUM NICHT NULL);
      Abfrage OK, 0 Zeilen betroffen (0,10 Sek.)
    • 3.7.2 Daten hinzufügen
      INSERT INTO demo(Startzeit, Endzeit)
      WERTE('1983-01-01', '1990-01-01'),
      ('1983-01-01', '1989-06-06'),
      ('1983-01-01', '1985-03-02'),
      ('1983-01-01', '1992-05-05'),
      ('1983-01-01 11:12:11', '1995-12-01');
    • 3.7.3 Daten direkt abfragen
      wähle * aus Demo;
      +----+------------+------------+
      | ID | Startzeit | Endzeit |
      +----+------------+------------+
      | 1 | 01.01.1983 | 01.01.1990 |
      | 2 | 01.01.1983 | 06.06.1989 |
      | 3 | 01.01.1983 | 02.03.1985 |
      | 4 | 01.01.1983 | 05.05.1992 |
      | 5 | 01.01.1983 | 01.12.1995 |
      +----+------------+------------+
      5 Zeilen im Satz (0,00 Sek.)
    • 3.7.4 Berechnung der Dauer
      Wählen Sie *, TIMESTAMPDIFF(JAHR, Startzeit, Endzeit) als Dauer aus der Demo;
      
      +----+------------+------------+----------+
      | ID | Startzeit | Endzeit | Dauer |
      +----+------------+------------+----------+
      | 1 | 01.01.1983 | 01.01.1990 | 7 |
      | 2 | 01.01.1983 | 06.06.1989 | 6 |
      | 3 | 01.01.1983 | 02.03.1985 | 2 |
      | 4 | 01.01.1983 | 05.05.1992 | 9 |
      | 5 | 01.01.1983 | 01.12.1995 | 12 |
      +----+------------+------------+----------+
      5 Zeilen im Satz (0,00 Sek.)
    • 3.7.5 Andere Anwendungen
      select *, if(TIMESTAMPDIFF(YEAR, end_time, CURRENT_TIMESTAMP())< 26 ,'< 26','>= 26') als Ergebnis aus der Demo;
      
      +----+------------+------------+--------+
      | ID | Startzeit | Endzeit | Ergebnis |
      +----+------------+------------+--------+
      | 1 | 01.01.1983 | 01.01.1990 | >= 26 |
      | 2 | 01.01.1983 | 06.06.1989 | >= 26 |
      | 3 | 01.01.1983 | 02.03.1985 | >= 26 |
      | 4 | 01.01.1983 | 05.05.1992 | < 26 |
      | 5 | 01.01.1983 | 01.12.1995 | < 26 |
      +----+------------+------------+--------+
      5 Zeilen im Satz (0,00 Sek.)

Dies ist das Ende dieses Artikels mit der detaillierten Erklärung des TIMESTAMPDIFF-Falls in MySQL. Weitere relevante Inhalte zu TIMESTAMPDIFF in MySQL finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Verwendung der MySQL-Zeitdifferenzfunktionen TIMESTAMPDIFF und DATEDIFF
  • MySQL-Zeitdifferenzfunktionen (TIMESTAMPDIFF, DATEDIFF), Funktionen zur Berechnung von Datumsumrechnungen (date_add, day, date_format, str_to_date)
  • Praktisches MySQL + PostgreSQL Batch-Insert-Update insertOrUpdate
  • Detaillierte Verwendung der MySQL-Funktionen row_number() und over()
  • Lösung für Indexfehler, die durch implizite MySQL-Typkonvertierung verursacht werden
  • Eine kurze Diskussion darüber, ob zu viele MySQL-Datenabfragen OOM verursachen
  • Django erstellt MySQL Master-Slave, um eine Lese-/Schreibtrennung zu erreichen
  • Detaillierte Erläuterung der MySQL-Multitabellen-Joinabfrage

<<:  Beispiel für eine Nginx-Cache-Konfiguration

>>:  Dynamische Vue-Komponente

Artikel empfehlen

5 Punkte, auf die Sie beim Erstellen einer Webseite achten sollten

1. Farbabstimmungsproblem <br />Eine Webseit...

HTML implementiert die Funktion zur Erkennung der Eingabevervollständigung

Verwenden Sie „onInput(event)“, um festzustellen,...

So kapseln Sie Axios einfach in Vue

Axios in Vue einfügen importiere Axios von „Axios...

W3C Tutorial (7): W3C XSL Aktivitäten

Ein Stylesheet beschreibt, wie ein Dokument angez...

Tutorial zur Installation von MySQL 5.7.28 auf CentOS 6.2 (MySQL-Hinweise)

1. Umweltvorbereitung 1.MySQL-Installationspfad: ...

MySQL-Datenbankoperationen (Erstellen, Auswählen, Löschen)

MySQL-Datenbank erstellen Nachdem wir uns beim My...

Vue implementiert das Hinzufügen, Anzeigen und Löschen mehrerer Bilder

In diesem Artikel wird der spezifische Code für V...

Implementierung der Vue-Nuxt-Anmeldeauthentifizierung

Inhaltsverzeichnis einführen Link Start Gehen Sie...

CSS-Positionierungslayout (Position, Positionierungslayoutfähigkeiten)

1. Was ist Positionierung? Das Positionsattribut ...

Eine kurze Erklärung zum sinnvollen Einsatz von Tabellen und Divs im Seitendesign

Zu Beginn dieses Artikels möchte ich die Fehler in...

Antworten auf mehrere häufig gestellte MySQL-Interviewfragen

Vorwort: Bei Vorstellungsgesprächen für verschied...