Kira-Star Geschrieben 22. März 2004 Teilen Geschrieben 22. März 2004 Grüß Euch Ich habe folgendes Problem: In meiner Datenbank gibt es eine Tabelle "T_Zeitspanne". Darin sind die einträge: - Zeit-ID - Produkt - User - Startzeit - Entzeit - Dauer Jetzt muss folgendes passieren: Die "Dauer" soll anhand von "Startzeit" und "Endzeit" berechnet werden. Folgendes sollte dabei aber auch beachtet werden: In Startzeit und Endzeit sind nicht nur Uhrzeit sondern auch das Datum enthalten. In Dauer soll am Ende dann stehen wieviele Tage/bzw. Stunden eine Zeitspanne war. Weiteres Problem hierbei ist, das ein Tag nicht 24h dauern soll, sondern maximal 5h. Also sprich wenn die Zeitspanne am Montag den 01.03.04 - 8Uhr angefangen hat und am 03.03.04 - 9Uhr geendet hat ist die Dauer nicht 49Stunden sondern nur 11Stunden. Kann mir bitte jemand weiterhelfen? Ich bin leider gar nicht in diesem Bereich berufstätig oder ähnliches, brauch dies aber dringend. Wäre lieb von Euch Eure Kira-Star Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kira-Star Geschrieben 23. März 2004 Autor Teilen Geschrieben 23. März 2004 anderer Ansatzpunkt: Kann mir einer Sagen wie ich die Zeit zwischen der Endzeitund Startzeit herausfinde? Gibt es danach die Möglichkeit das in Minuten umzuwandeln? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dorti Geschrieben 23. März 2004 Teilen Geschrieben 23. März 2004 Also, in Oracle kann ich Dir nur so weit helfen: Du rechnest trunc(endzeit-startzeit), damit erhälst Du die Tage. trunc(endzeit-startzeit)*5 ergibt dann die vollen Tage, die mit einer 5St-Dauer berechnet werden. Dann fehlen Dir nur noch die Tage, an denen weniger als 5St verbraucht wurden. Dafür muss ich mir noch was überlegen. Probier mal, ob das trunc überhaupt in Access funktioniert. Gruß dorti Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
just_me Geschrieben 23. März 2004 Teilen Geschrieben 23. März 2004 Also in TSQL sieht das so ausSELECT DateDiff(day, Datum1, Datum2)*300 + CASE WHEN (DateDiff(hour, DateAdd(day, DateDiff(day, Datum1, Datum2), Datum1), Datum2))>5 THEN 5*60 ELSE DateDiff(hour, DateAdd(day, DateDiff(day, Datum1, Datum2), Datum1), Datum2)*60 END+ DateDiff(minute, DateAdd(hour, DateDiff(hour, Datum1, Datum2), Datum1), Datum2) FROM ZeitDabei wird als Ergebnis die Zeit in Minuten zurückgegeben, wobei jeder Tag mit lediglich 5 Stunden berücksichtigt wird. (Unterbrechungszeiten werden nicht einbezogen, alle Tage werden forlaufend gezählt, d.h. Wochenenden, Feiertage, etc. sind ebenfalls unberücksichtigt.) In VBA gibts ähnliche Funktionen ... Du wirst es also möglicherweise nicht live aus der Datenbank ziehen können, sondern solltest mal den "gemischten" Weg in Betracht ziehen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dorti Geschrieben 23. März 2004 Teilen Geschrieben 23. März 2004 So, mit trunc(((endzeit-startzeit)*24)-(trunc(endzeit-startzeit)*24)) kriegst Du die Stunden von den restlichen Tagen. Wenn die größer als 5St sind, musst Du sie auf 5St setzen, ansonsten so lassen. Mit trunc(((endzeit-startzeit)*24*60)-(trunc(endzeit-startzeit)*24*60)-(trunc(((endzeit-startzeit)*24)-(trunc(endzeit-startzeit)*24))*60)) kriegst Du dann die restlichen Minuten. Wie gesagt, ist nur unter Oracle getestet. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Peregrin Geschrieben 23. März 2004 Teilen Geschrieben 23. März 2004 Original geschrieben von Kira-Star anderer Ansatzpunkt: Kann mir einer Sagen wie ich die Zeit zwischen der Endzeitund Startzeit herausfinde? Gibt es danach die Möglichkeit das in Minuten umzuwandeln? hi, wenn mich mein gedächtnis nicht im stich lässt, gibt es eine funktion datediff("interval", "dat_von", "dat_bis"). die liefert dir die differenz zwischen zwei daten. müsste in der hilfe etwas zu stehen stehen. mit datediff("h"; startzeit; endezeit) sollte das die differenz in stunden liefern. keine gewähr hmmm, war mal wieder jmd schneller hth... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kira-Star Geschrieben 23. März 2004 Autor Teilen Geschrieben 23. März 2004 Oh tolle Sache, jetzt will ich grad ins Forum schreiben das ich es selbst hinbekommen habe und ihr postet mir Tips *g* Danke euch trotzdem *g* Hab das ganze Über ein berechnetes Feld im QBE gemacht, habs wunderbar hinbekommen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kira-Star Geschrieben 24. März 2004 Autor Teilen Geschrieben 24. März 2004 Ein neues Problem hat sich nun eingeschlichen :confused: Und Zwar hab ich nun die Dauer in Stunden in der Tabelle stehen. Ich brauch aber jetzt noch irgendwas das mir da nochmal bissl weiterrechnet. Und zwar ist ja eine Maximale angabe für einen Tag 5h. Wie sag ich dem Access jetzt das Wenn da z.B 25h steht er nur 5h für den 1 Tag+ 1h vom neuen Tag nehmen soll??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
just_me Geschrieben 24. März 2004 Teilen Geschrieben 24. März 2004 Unter der Annahme, dass das Attribut [Zeit in Stunden] einen vollen Tag (also 24/d) erfasst und je Tag nur 5 Stunden gezählt werden sollen: SELECT ((floor([Zeit in Stunden]/24))*5) + ([Zeit in Stunden]-((floor([Zeit in Stunden]/24))*24)) FROM [Tabelle] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.