2017-07-07 4 views
-1

Ich habe 4 Spalten: Startdatum, Enddatum, Startzeit und Endzeit. Ich muss den Unterschied finden, d. H. Endzeit-Startzeit. Das Startdatum und das Enddatum müssen jedoch berücksichtigt werden. Beispiel: Wenn ich Startdatum = 7/6/2017 und Anfangszeit = 1: 00 und Enddatum -7/7/2017 Endzeit = 2:00 dann ist es 25 Stunden.Berechnung Zeitunterschied zwischen den Tagen

muss ich tun dies für alle Anfangs- und Enddaten innerhalb der letzten 1 Woche. Kann mir jemand dabei helfen? Es wäre wirklich hilfreich.

Antwort

0

Verwenden Sie UNIX_TIMESTAMP() und STR_TO_DATE(), um Datum und Uhrzeit in Sekunden in einen Unix-Zeitstempel zu konvertieren. ZB: UNIX_TIMESTAMP(STR_TO_DATE("7/6/2017 1:00", '%d/%m/%Y %H:%i'))

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp

https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-to-date

Dann eine grundlegende Substraktion auf beiden Zeitstempel führen die Zeitlücke in Sekunden zu erhalten.

Als eine allgemeine Empfehlung, ist es am besten, Ihre Daten in den richtigen MySQL Datetime Spaltentyp (bessere SQL Unterstützung), oder als Unix int Zeitstempel (schnellere Diffs), oder als eine ISO formatierte Zeichenkette einschließlich der GMT-Daten (bessere menschliche Lesbarkeit, schreckliche Lookups).

+0

Dies sind 4 verschiedene Spalten. Die Datumsspalten sind im Datumsformat und die Zeitspalten sind vom Datentyp time. Es ist nicht dieselbe Spalte, die Datum und Uhrzeit enthält. – user3800888

+0

Sie können 'CONCAT()' verwenden, um eine einzelne Zeichenfolge zu erstellen. – Fabien

+0

Können Sie mir ein Beispiel geben? Du sagst also, dass ich die Startdaten und die Startzeit verkette und dann dasselbe für Enddatum und Endzeit mache und dann Timestampdiff benutze? – user3800888

Verwandte Themen