Menü

  Login

  Shoutbox

  Forum » Fragen zu Ilch » Andere Dinge » UNterschied der Zeit ermittel


UNterschied der Zeit ermittel
Zoddel
Grünschnabel

User Pic

Posts: 2
# 27.11.2010 - 00:33:28
    zitieren



Huhu, also folgendes problem:

meine DB schaut so aus

UID | Inhalt | TIMESPAMP

1 | text 1 | 123456789 |
1 | text 2 | 123456789 |
1 | text 3 | 123456789 |
1 | text 4 | 123456789 |
1 | text 5 | 123456789 |

2 | text 1 | 123456789 |
2 | text 2 | 123456789 |
2 | text 3 | 123456789 |
2 | text 4 | 123456789 |
2 | text 5 | 123456789 |


3 | text 1 | 123456789 |
3 | text 2 | 123456789 |
3 | text 3 | 123456789 |
3 | text 4 | 123456789 |
3 | text 5 | 123456789 |

1 | text 1 | 123456789 |
1 | text 2 | 123456789 |
1 | text 3 | 123456789 |
1 | text 4 | 123456789 |
1 | text 5 | 123456789 |


usw

Wie bekomme ich nun die dauer zwischen den ersten und den letzten Timestamp ermittelt.

Möchte daraus denn weiterführend eine Statistik also das der das ergebnis der Timestamps zusammen addiert bzw komplett als stunden ausgibt.

Hoffe man versteht was ich meine

*Anmerkung: bitte moven wenn falsches Forum*

..:: Träume nicht dein Leben lang - lebe deinen Traum ::..
Mairu
Administrator

User Pic

Posts: 1908
# 27.11.2010 - 10:55:43
    zitieren



Also ich nehme mal an du, du willst den frühesten und den spätesten Timestamp auslesen, ich weiß nicht wie man es ohne alle Auszulesen mit einer Abfrage macht, deswegen mach ichs einfach mit 2, ich benutze mal pseudo Code, ich hoffe du kannst damit was anfangen.

 Code
1:
2:
3:
4:
5:
6:
7:
 $min = SELECT * FROM table WHERE uid = X ORDER BY timestamp LIMIT 1
$max =SELECT * FROM table WHERE uid = X ORDER BY timestamp DESC LIMIT 1
$diff = $max - $min; //Anzahl Sekunden zwischen Zeitpunkten (Sekunden > 60)
$seks = $diff % 60; //Sekunden < 60
$tmins = ($diff - $seks) / 60; //Minuten > 60
$mins = $tmins % 60; //Minuten < 60
$hours = ($tmins - $mins) / 60; //Stunden


PS: Ich kann man auch vertan haben Auslachen

---- Edit

Ich hab nochmal kurz versucht ein Weg nur auf MySQL Basis zu finden und bin zu folgender Abfrage gelangt.

 Code
1:
 SELECT TIMEDIFF((SELECT FROM_UNIXTIME(timestamp) FROM table ORDER BY timestamp DESC LIMIT 1), (SELECT FROM_UNIXTIME(timestamp) FROM table ORDER BY timestamp LIMIT 1))



Zuletzt modifiziert von Mairu am 27.11.2010 - 11:13:23