Hulp gezocht bij tijdsberekening in access

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
Hallo heeft misschien iemand een oplossing om tijd te berekenen in een query?

Het lukt me niet met DateDiff of ik zet de formule verkeerd.

Zoek de oplossing voor:

Stel datum 15-01-2015 tijdstip: 2015 uur en tweede datum 16-01-2015 tijdstip 0.15 uur

zelf had ik dit geprobeerd DateDiff("n";[datum];[datum];[begintijd];[eindtijd]) maar dat functioneerd niet :(

Datum is niet noodzakelijk maar het verschil in tijd wel

Kan eventueel een access database versturen waar het probleem in zit...

[ Voor 7% gewijzigd door Anoniem: 650393 op 16-01-2015 20:29 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Wat dacht je? "Ik verzin zelf wel wat argumenten voor DateDiff en dan snapt 'ie het wel..."?

De documentatie al eens bekeken?
https://support.office.co...?ui=en-US&rs=en-001&ad=US

Daar waar "Date" staat kun je "DateTime" lezen. Een "Date" in Access is immers een datum + tijdstip.

Het lijkt me stug dat met de meest voor de hand liggende zoekopdracht niets zinnigs naar voren kwam...

[ Voor 36% gewijzigd door RobIII op 16-01-2015 20:33 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
Nou ben er nog niet wijzer van :(

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Nou wij ook niet. Begin eerst eens je vraag duidelijker te stellen:

"het functioneert niet"-->Wat precies? Krijg je foutmeldingen, een foutief resultaat? Als je foutmeldingen krijgt snap je wat ze betekenen.
"Mijn query"-->Post dan op zijn minst de SQL die je gebruikt.
"Ben er nog niet wijzer van"-->Hoezo? Snap je je eigen link niet? Is de documentatie onduidelijk? Wat snap je dan niet?

En wat is het doel wat je wilt bereiken? Een schoolopdracht misschien? Geef wat context.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
wat niet functioneert nou heel simpel dat acces niet het tijdsverschil uitrekend

Stel: datum 15-01-2015 tijdstip: 20.15 uur en tweede datum 16-01-2015 tijdstip 0.15 uur

Datum is niet noodzakelijk maar het verschil in tijd wil ik uitgerekend hebben in een query

Dus welke formule om de uitkomst van 4 te krijgen in acces query

Acties:
  • 0 Henk 'm!

  • lordsnow
  • Registratie: Maart 2000
  • Laatst online: 15:21

lordsnow

I know nothing

Meer voorbeelden hier:
http://www.classanytime.com/mis333k/sjdatetime.html

In combinaite met het voorbeeld uit de documentatie verwacht ik dan zoiets::
DateDiff("n", 15-01-2015 20:15, 16-01-2015 0:15)

Disclaimer: ik heb total geen praktijk ervaring hiermee.

//edit
"n" geeft aan dat je een resultaat wilt in minuten. Ik dacht dat dit de bedoeling was, omdat je "n" gebruikte in he eerste post. Maar nu geef je aan dat je 4 verwacht als resultaat, het verschil in uren. Dan wordt het dus "h".

//edit 2
Hier een YouTube videotje:
https://www.youtube.com/watch?v=hOPxCcXzAjo

Je kolommen/cellen begintijd en eindtijd moeten elk dus volledige een datum + tijd bevatten. Als het alleen een tijd bevat gaat Access er blijkbaar/logischerwijs van uit dat het de huidige/zelfde dag betreft.

[ Voor 53% gewijzigd door lordsnow op 16-01-2015 22:57 ]


Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
DateDiff("h";[begintijd];[eindtijd]) had ik zelf al maar dit werkt alleen van 0.01 tot 23.59 maar niet met tijden van 20.15 en dan na 0.00 dan krijg ik geen juiste uitkomsten.

bedankt ga eens kijken wat je stuurde Lordsnow

Ja sites genoeg te vinden nu nog iemand die het me vertel how to do!

Nou n is idd minuten h is uren enzvoorts maar het probleem is als je tijden voor twaalf met na twaalf bereken komt niet de juiste uitkomst |:(

[ Voor 51% gewijzigd door Anoniem: 650393 op 16-01-2015 22:44 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
DateDiff geeft écht wel de juiste uitkomst; jij doet geheid iets verkeerd. Maar onze glazen bol is stuk dus je zult (zoals eerder aangegeven) op z'n minst de query die je gebruikt moeten posten, wat daar uit komt, wat je verwacht dat er uit komt en (een of een paar) records uit de tabel waar je query uit put. Zolang we dat niet hebben blijft 't voor ons ook koffiedik kijken en je "uitleg skills" zijn niet je van het ;)

Dus: geef nou eens concreet antwoord op de vragen die je krijgt en dan komen we er samen wel uit ;) "Niet de juiste uitkomst" is geen concreet antwoord. Als je zegt: er komt 7 uit terwijl ik 8 verwacht (of 48 of 17 of....) met die-en-die datums dan kunnen we vast aangeven wat je verkeerd doet. Maar nogmaals: aan DateDiff ligt het écht 300% zeker-weten niet; dat was heus wel gefixed in de afgelopen 10 versies van Office.

Dit voorbeeld en dit voorbeeld zijn precies wat je (zegt dat je) zoekt (maar dan voor MSSQL Server 20008, niet MS Access en dus, helaas voor jou, niet 100% identiek aan de oplossing voor MS Access maar verdomd close... )

[ Voor 51% gewijzigd door RobIII op 17-01-2015 00:54 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
Hoe plaats ik hier de de database althans het voorbeeld waar ik het kan laten zien

Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
in tabel staan begintijd, eindtijd, datum eventueel tweede datum daar als het na twaalf wordt.
20.15 uur 0.15 15-01-205 16-01-2015
begintijd, eindtijd, datum----> Korte datumnotatie
wat ik nu berekend wil hebben is het tijdsverschil en dat zou 4 uur moeten zijn.

in query staat begintijd eindtijd en datum eventueel tweede datum
2015 0.15 15-01-2015

totaal inzeturen: DateDiff("n";[begintijd];[eindtijd])/60
uitkomst bij 20.15 23.59 =4
maar bij 20.15 0.15 =-19.733333 dus niet goed

Acties:
  • 0 Henk 'm!

  • MB113
  • Registratie: November 2009
  • Niet online

MB113

Netwerken is net werken.

Dus je neemt nog altijd alleen je tijden mee als in je datediff? Bij je begin en eindtijd ook de respectievelijke datums meenemen.

Quidquid latine dictum sit, altum videtur.


Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
oke dan wordt het in de tabel 15-01-2015 20:15 en 16-01-2015 00.15 dan is mijn volgende vraag weet iemand

hoe ik dan het invoermasker moet schrijven 99:00;0;_ is voor tijd 99-99-0000;0;_ voor datum

99-99-0000?99:00;0;_ .....op het ? hoe krijg ik daar een spatie tussen dan of is dat juist niet goed en moet het 99-99-000099:00;0;_ zijn

Acties:
  • 0 Henk 'm!

  • soulrider
  • Registratie: April 2005
  • Laatst online: 27-11-2017
je moet de database hier niet posten:
in access kan je van je bijeengeklikte query met één of meerdere klikken ook de SQL-code zien en die wordt hier al meermaals gevraagd.
Als je niet weet hoe je van de visuele voorstelling van je query naar de SQL-code gaat, dan duw je eens op F1 of bezoek je google nog eens...
Als je dat dan doorhebt, post je die SQL code hier zodat we allemaal verder kunnen om het denkwerk voor jou te doen...

ps: code-tags gebruiken maakt het ook wat makkelijker:

en je hebt dus 4 kolommen?
code:
1
2
begintijd | eindtijd  | begindatum | einddatum
20:15     | 00:14     | 15-01-2015 | 16-01-2015


Dan voeg je begindatum en begintijd toch even samen en "indien (einddatum niet leeg is) einddatum, anders begindatum" + eindtijd?

en die 2 dingen gooi je in je datediff?

en als er nooit meer dan een dag tussen de 2 tijdstippen zit kan je toch net zo goed:
indien eindtijd < begintijd dan is verschil = ((24:00 - begintijd) + eindtijd) anders (eindtijd - begintijd)
(24:00 - 20:15 = 3h45 + 00:15 = 4h...)

maar god: vogel maar eens uit hoe je sql-code zichtbaar krijgt en hier post en dan gaan we verder :+

[ Voor 46% gewijzigd door soulrider op 17-01-2015 23:53 ]


Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
99-99-0000#99:00;0;_ opgelost hoop ik

Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
begindatum#tijd einddatumtijd
nu no maar twee 99-99-0000#99:00;0;_ 99-99-0000#99:00;0;_

als dit werkt iets meer werk bij het invoeren maar denk dat het niet anders gaat met totaal inzeturen: DateDiff("n";[begindatumtijd];[einddatumtijd])

Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
Nou DateDiff("n";[begindatumtijd];[einddatumtijd]) werkt maar als iemand me kan vertellen hoe de datadiff anders geschreven kan worden zodat ik onderstaande kan gebruiken en niet afhankelijk ben van einddatum bijvoorbeeld als de dag het zelfde is......scheelt aan invoeren van einddatum

begintijd | eindtijd | begindatum | einddatum
20:15 | 00:14 | 15-01-2015 | 16-01-2015

Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
is het mogelijk anders om de standaardwaarde voor einddatum het zelfde te laten worden in de tabel als begindatum

Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
De oplossing gevonden:

begi: DateDiff("n";[begintijd];1440)

ende: DateDiff("n";[eindtijd];1440)

totaal uur: IIf([ende]<[begi];([begi]-[ende])/60;(1440-([ende]-[begi]))/60)

Yesssssssssssssssssssssssssssssss en bedankt allemaal voor de moeite :P

[ Voor 170% gewijzigd door Anoniem: 650393 op 18-01-2015 01:48 ]


Acties:
  • 0 Henk 'm!

Anoniem: 650393

Topicstarter
Vooral de Soulrider bracht me op het juiste idee!!! _/-\o_ _/-\o_ _/-\o_ _/-\o_

en als er nooit meer dan een dag tussen de 2 tijdstippen zit kan je toch net zo goed:
indien eindtijd < begintijd dan is verschil = ((24:00 - begintijd) + eindtijd) anders (eindtijd - begintijd)
(24:00 - 20:15 = 3h45 + 00:15 = 4h...)
Anoniem: 650393 schreef op zondag 18 januari 2015 @ 01:44:


De oplossing gevonden:

begi: DateDiff("n";[begintijd];1440)

ende: DateDiff("n";[eindtijd];1440)

totaal uur: IIf([ende]<[begi];([begi]-[ende])/60;(1440-([ende]-[begi]))/60)

Yesssssssssssssssssssssssssssssss en bedankt allemaal voor de moeite :P

Acties:
  • 0 Henk 'm!

  • soulrider
  • Registratie: April 2005
  • Laatst online: 27-11-2017
het is natuurlijk wel onder de voorwaarde dat er nooit meer dan 1 dag tussen die 2 tijdstippen zit...
Pagina: 1