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

Sechs Möglichkeiten, die Größe von Docker-Images zu reduzieren

Seitdem ich 2017 mit der Arbeit an Vulhub begonne...

JavaScript implementiert einfache Rechnerfunktion

In diesem Artikel wird der spezifische JavaScript...

Grundlegende Verwendung von Unterabfragen in MySQL

Inhaltsverzeichnis 1. Unterabfragedefinition 2. U...

js zur Realisierung des Mausverfolgungsspiels

In diesem Artikel wird der spezifische Code von j...

HTML-Tags: Sub-Tag und Sup-Tag

Heute stelle ich zwei HTML-Tags vor, die ich nich...

Nginx leitet dynamisch an Upstream weiter, entsprechend dem Pfad in der URL

In Nginx gibt es einige erweiterte Szenarien, in ...

MySql 8.0.11-Winxp64 (kostenlose Installationsversion) Konfigurations-Tutorial

1. Entpacken Sie das Zip-Paket in das Installatio...

HTML-Beispielcode zum Lesen und Anzeigen von Bildern in einem lokalen Ordner

Ein Zweck Wählen Sie auf der HTML-Seite einen lok...

Die Fallstricke beim Erlernen von Vue.js

Inhaltsverzeichnis Klasse void zeigen ES6-Pfeilfu...

Eine elegantere Methode zur Fehlerbehandlung in JavaScript async await

Inhaltsverzeichnis Hintergrund Warum Fehlerbehand...

Der IE8-Browser wird vollständig mit Webseitenstandards kompatibel sein

<br />Um zu beweisen, dass sein Engagement f...