Zum Inhalt springen

Dauer berechnen - in Access??


Kira-Star

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also in TSQL sieht das so aus

SELECT	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 Zeit

Dabei 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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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???

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...