PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : problem mit zeitberechnung (mysql)



hanswurst
23-03-2005, 08:45
hallo,
ich habe ein problem mit der berechnung von zeiten. meine tabelle sieht folgendermaßen aus:

fahrzeug datum start ziel
---------------------------------------------------
44 12.03.2005 11:23:42 12:59:56
22 12.03.2005 08:10:12 10:10:12
23 13.02.2005 08:10:13 10:08:00
44 13.03.2005 15:00:03 16:10:05
23 13.02.2005 17:56:21 19:18:51

ich möchte wissen wie lang die fahrzeit von zb wagen 44 am 12.03/insgesamt war. mit <sum(ziel - start) / 10000 group by datum> bekomme ich ein ungültiges ergebnis.
kass mir einer einen ansatz für zeitberechnungen liefern....

vielen dank

quinte17
28-03-2005, 14:17
noch eine problemstellung meinerseits:
kann es auch vorkommen, dass wagen 44 am 1.1. um 12:00 uhr losfährt und am 2.1. um 9:00 ankommt?
wenn ja, dann wird des mit deiner aktuellen db-struktur schwierig...

TIMEDIFF() was added in MySQL 4.1.1.
könnte die lösung für dein prob sein...
url: http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html

greetz

Christoph
29-03-2005, 12:20
Du verwendest den falschen Datentyp. Datum+Uhrzeit ist der Datentyp TIMESTAMP, den Du unbedingt verwenden solltest (siehe Anmerkung von quinte17).

Wenn Du timestamp verwendest, dann kannst Du die SQL-Funbktion AGE verwenden, die Zeitdifferenzen berechnet. Den Rückgabewert (vom SQL-Typ INTERVAL) kannst Du mit to_char oder ähnlichen Konvertierungsfunktionen formatieren. Soweit die Theorie laut SQL-Standard. Inwieweit MySQL das unterstützt, musst Du der Doku entnehmen.

hanswurst
11-04-2005, 10:14
[QUOTE=quinte17]noch eine problemstellung meinerseits:
kann es auch vorkommen, dass wagen 44 am 1.1. um 12:00 uhr losfährt und am 2.1. um 9:00 ankommt?
wenn ja, dann wird des mit deiner aktuellen db-struktur schwierig...

nein, dass ist nicht möglich und wird auch nie vorkommen...
aber vielen dank mit dem timediff()

elrond
11-04-2005, 13:38
nein, dass ist nicht möglich und wird auch nie vorkommen...
aber vielen dank mit dem timediff()

ich habe in meinem bisherigen Entwicklerdasein einen Satz als sehr wahr kennengelernt:

Irgendwann wird jede Konstante variabel!

Deshalb bin ich immer sehr vorsichtig mit aussagen wie "passiert nie..." ;)

mwanaheri
11-04-2005, 13:56
ich habe in meinem bisherigen Entwicklerdasein einen Satz als sehr wahr kennengelernt:

Irgendwann wird jede Konstante variabel!

Deshalb bin ich immer sehr vorsichtig mit aussagen wie "passiert nie..." ;)

Wenn er mit timestamp arbeitet, kann er die Möglichkeit ja auch problemlos nutzen. Tut ihm dann ja nicht weh, wenn ein Wagen am nächsten Tag ankommt. Man sollte wirklich sehr vorsichtig mit "kommt nie vor" sein.