[SQL Server] Tijden/duur optellen

Pagina: 1
Acties:
  • 480 views sinds 30-01-2008
  • Reageer

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 15:29
In een tabel heb ik 2 kolommen startijd-eindtijd. Nu kan ik daar uiteraard redelijk eenvoudig het verschil van uitrekenen, maar wat als ik deze verschillen bij elkaar wil optellen? Op die manier krijg ik het totaal van de duur van de verschillende records, precies wat ik graag wil hebben.

Ik werk met SQL Server. Die maakt van het verschil van 2 datetime kolommen weer een datetime kolom. Op zich niet erg; door restricties heb ik alleen het tijd gedeelte nodig (de duur is nooit langer als een dag) wat prima wordt uitgerekend. Maar datetime kolommen kun je niet in een SUM gebruiken. Dus zal ik de duur in een view moeten omzetten naar iets anders wat wel te SUM-men is en vervolgens weer converteren naar iets bruikbaars. Iemand enig idee hoe je dat doet?

  • Exterazzo
  • Registratie: Mei 2000
  • Laatst online: 13:51

Exterazzo

Qeasy

Misschien heb je iets aan de DATEDIFF functie?

http://msdn.microsoft.com...tsqlref/ts_da-db_5vxi.asp

Ik denk via DATEDIFF converteren naar minuten en daar kun je dan wel weer SUM op los laten.

[ Voor 67% gewijzigd door Exterazzo op 10-01-2007 10:21 ]

Audentia


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 15:29
Hmm heen en weer converteren lijkt me inderdaad de beste oplossing. Jammer dat SQL Server ook niet zo'n fijn timespan formaatje heeft, dat werkt toch wel prettig met dit soort dingen.

  • Crazy D
  • Registratie: Augustus 2000
  • Nu online

Crazy D

I think we should take a look.

Tjah, SQL Server heeft ook geen objecten, dus datediff is feitelijk wat jij met timespan bedoelt...

Exact expert nodig?


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik zou persoonlijk gewoon een duratie opslaan in secondes/minuten/uren (net wat je nodig hebt) en die (danwel dynamisch, danwel in een losse kolom) gebruiken in aggregates zoals SUM e.d.

Ergens is het natuurlijk nogal wiedes dat je niet twee datetime kolommen kunt "optellen". Wat zou dan de uitkomst volgens jou moeten zijn van 1-1-1900 07:06:08 + 1-1-1900 14:50:34? Volgens mijn berekening komt daar 2-2-3800 21:56:42 uit :+

[ Voor 39% gewijzigd door RobIII op 11-01-2007 13:14 ]

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