Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Dauer berechnen - in Access??

Empfohlene Antworten

Veröffentlicht

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

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?

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

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.

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.

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

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.

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

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]

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.