Zeitdifferenz berechnen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zeitdifferenz berechnen

Re: Zeitdifferenz berechnen

von teakay » Do, 11.03.2010 12:02

Ich habe das etwas anders gelöst. Versuche es mal in dem du den errechneten wert nicht durch 60 sondern durch 60.00 teilst. dann bekommst du auch die nachkommastellen. Wenn du dann die abfrage durchgeführt hast kannst du die spalte umformatieren auf zeit und so wird aus 2,50 --> 2:30. In der Formaular abfrage kannst du das feld genauso formatieren und hast das was du wolltest.

Hier ein beispiel aus meiner Abfrage.

Code: Alles auswählen

DATEDIFF( 'ss', "Arbeitsbegin", "Arbeitsende" ) / 3600.00
Arbeitsbegin 8:00
Arbeitende 16:00
Als ergebniss bekomme ich dann 0,33 und formatiere das nur noch in ein zeitformat um und schon wird daraus 8:00

mfg teakay

Re: Zeitdifferenz berechnen

von Barlee » Mi, 10.03.2010 18:11

Hallo,
benötige ich jedoch unbedingt einen genauen Ausdruck als Stunden mit 2 Dezimalstellen hinter dem Komma.
Aber wenn ich in der Formel durch 60 teile kommt immer nur die entsprechende Ganzzahl, die nachkommastellen werden verschluckt.
Probier mal CAST

Code: Alles auswählen

CAST(DATEDIFF( 'mi', "Zeit1", "Zeit2" ) AS DOUBLE) / 60 AS "TST" 
Hierfür muss "SQL direkt ausführen" aktiviert sein. Alle Tabellen, Spaltennamen usw. in Anführungsstriche setzen!

Gruß Barlee

Re: Zeitdifferenz berechnen

von muhl » Mi, 10.03.2010 14:53

Der modulo-Befehl könnte hier helfen.

Code: Alles auswählen

SELECT "ID", "Datum", "Zeit1", "Zeit2", DATEDIFF( 'mi', "Zeit1", "Zeit2" ) / 60 as stunden, mod(DATEDIFF( 'mi', "Zeit1", "Zeit2" )/60) as minuten FROM "Tabelle1"
ergibt die Stunden und die Minuten als Rest, also bei 150 Minuten 2 Stunden und 30 Minuten.

Und wenn du unbedingt 2 Dezimalstellen brauchst, dann kannst du das mod-Ergebnis * 100 / 60 teilen und erhältst dann die 2 Dezimalstellen.
Problem ist nur, das zusammenzubringen.
Mit concat('2',',','50) erwartet man wohl 2,50, aber base zickt da rum, kann nur 2 werte bei concat fressen, daher der kleine Trick:

Code: Alles auswählen

concat('2',concat(',','50') und schon steht da 2,50
Damit kannst du aber nicht rechnen!!!!!!!

Dein Befehl lautet also:

Code: Alles auswählen

concat(DATEDIFF( 'mi', "Zeit1", "Zeit2" ) / 60,concat(',', mod(DATEDIFF( 'mi', "Zeit1", "Zeit2" )/60)*100/60))
alles klar? ich blick auch nicht mehr durch, ist aber ne lösung

Gruß,

Maik

Re: Zeitdifferenz berechnen

von Lehrling » Fr, 23.05.2008 11:04

Vielen Dank für Deine schnelle Hilfe.
Mit der Formel funktioniert es.
Ich habe jetzt das Ergebniss in Minuten.
Für die weitere Bearbeitung benötige ich jedoch unbedingt einen genauen Ausdruck als Stunden mit 2 Dezimalstellen hinter dem Komma.
Aber wenn ich in der Formel durch 60 teile kommt immer nur die entsprechende Ganzzahl, die nachkommastellen werden verschluckt.

Die eingegebene Formel sieht so aus:
SELECT "ID", "Datum", "Zeit1", "Zeit2", DATEDIFF( 'mi', "Zeit1", "Zeit2" ) / 60 FROM "Tabelle1"

Wie kann ich dieses letzte Problem noch lösen?

Vielen Dank im voraus.

Re: Zeitdifferenz berechnen

von hema » Fr, 23.05.2008 11:00

Code: Alles auswählen

SELECT DATEDIFF( 'mi', "Zeit1", "Zeit2" ) FROM "TABELLENNAME"
gibt dir die Zeitdifferenz in Minuten aus.

Wie du es in HH:MM formatieren kannst, kann ich dir nicht sagen. Danach suche ich selber noch.

Gruss

Re: Zeitdifferenz berechnen

von berndkli » Fr, 23.05.2008 02:10

Suche mal im Baseforum nach "Datediff"

Zeitdifferenz berechnen

von Lehrling » Do, 22.05.2008 13:36

Wie kann ich in einer Abfrage eine Zeitdifferenz berechnen und das Ergebniss im Zeitformat ausgeben. (HH:MM)
z.B. Zeit1 = 08:00 Zeit2= 17:15

Nach oben