Jag undrar hur man summerar tider. Jag har en tabell som ser ut ungefär så här: Hej Tack för snabb respons! <code> Om du använder det faktum att tid är decimal tal så kan du skriva:Summera tider
Namn InTid UtTid Datum
Jonas 12.00 13.00 2006-10-01
Jonas 14.00 16.00 2006-10-02
Annette 10.00 14.00 2006-09-23
Nu undrar jag hur jag enkelt summerar tiden för t ex Jonas som har totalt 3 timmar.
Tack på förhand!
//JonasSv: Summera tider
För att förenkla det du vill åstadkomma, bör deklarera "InTid" och "UtTid" som "Datum/Tid".
Följande hämtar antalet minuter.
(Kolla upp någon referens för "DateDiff" för mer information...)
SELECT SUM(DateDiff('n',InTid,UtTid)) FROM Tabell WHERE Namn='Jonas'
/ Peter
Sv:Summera tider
Det funkade finfint! Klurar lite på hur jag ska dela upp det i timmar och minuter sen men det löser sig nog ;)
Hur gör jag om jag vill ha en lista på samtliga personer som skulle kunna se ut så här:
Jonas 180
Annette xxx
Tomas xxxSv: Summera tider
SELECT Namn, SUM(DateDiff('n',InTid,UtTid)) FROM Tabell GROUP BY Namn
</code>
/ PeterSv: Summera tider
SELECT Namn, SUM(UtTid-InTid) * 1440
FROM TabellNamn
GROUP BY Namn
Detta borde ge betydligt bättre prestanda än att anropa datediff funktionen.
1440 kommer ifrån 24*60. Ett datum/tid är ett decimaltal där heltalsbiten är antal dygn sedan 1899-12-30. Med andra ord en timme är 1/24 och en minut är 1/24/60 = 1/1440.
Så kl 12:00 är altså ett halvt dygn =0.5 eller 12 timmar 12/24 = 1 / 2.
För att göra om tiden till minuter är det bara att multiplicera med 1440.