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:
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
Der modulo-Befehl könnte hier helfen.
[code]SELECT "ID", "Datum", "Zeit1", "Zeit2", DATEDIFF( 'mi', "Zeit1", "Zeit2" ) / 60 as stunden, mod(DATEDIFF( 'mi', "Zeit1", "Zeit2" )/60) as minuten FROM "Tabelle1"[/code]
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]concat('2',concat(',','50') und schon steht da 2,50[/code]
Damit kannst du aber nicht rechnen!!!!!!!
Dein Befehl lautet also:
[code]concat(DATEDIFF( 'mi', "Zeit1", "Zeit2" ) / 60,concat(',', mod(DATEDIFF( 'mi', "Zeit1", "Zeit2" )/60)*100/60))[/code]
alles klar? ich blick auch nicht mehr durch, ist aber ne lösung
Gruß,
Maik