---
title: "Summa tid"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/141841-summa-tid"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "joel_joel88"
published: "2006-02-01T17:24:31.000Z"
updated: "2006-02-15T22:42:03.000Z"
replies: 24
views: 632
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/141841-summa-tid"
---

# Summa tid

_Sida 1 av 2._

## #1 — joel_joel88, 2006-02-01T17:24Z

Hej!

Hur gör jag för att summera tid som ligger i datum/tid tabell?

Permalänk: https://www.webforum.nu/p/141841

## #2 — Peter S, 2006-02-01T17:54Z

DBMS?

Permalänk: https://www.webforum.nu/p/1759737

## #3 — joel_joel88, 2006-02-01T18:11Z

Jag kör med access till det här. Det går inte använda vanlig sum va?

Permalänk: https://www.webforum.nu/p/1759743

## #4 — LarsG, 2006-02-01T18:24Z

Jag förmodar att du avser att summera tidsintervall och inte tidsangivelser. Lagra det som minuter(sekunder) och summera som vanligt.

Permalänk: https://www.webforum.nu/p/1759750

## #5 — joel_joel88, 2006-02-01T18:46Z

Har gjort ett program i VB där jag matar in flygtid. Jag vill kunna summera flygtiden.
Jag skriver flyg tiden så här. TT:MM:SS

Permalänk: https://www.webforum.nu/p/1759766

## #6 — LarsG, 2006-02-01T19:09Z

```
select sum(cint(mid(tc,1,2))*3600+cint(mid(tc,4,2))*60+cint(mid(tc,7,2)) from t
```

om du inte lagrar det som sekunder.

Permalänk: https://www.webforum.nu/p/1759779

## #7 — joel_joel88, 2006-02-01T19:29Z

Jag får ett felmeddelande som säger att en operator saknas  :o

```
Set rs = connect.Execute("select sum(cint(mid(flygtid,1,2))*3600+cint(mid(flygtid,4,2))*60+cint(mid(flygtid,  7,2)) as summa from flygtid")
```

Permalänk: https://www.webforum.nu/p/1759786

## #8 — LarsG, 2006-02-01T19:37Z

```
ci  nt
```

Ser det ut så där i din fråga? Vad har du för datatyp i kolumnen?

Permalänk: https://www.webforum.nu/p/1759788

## #9 — joel_joel88, 2006-02-01T19:39Z

Ser inte så ut i min kod. datatypen är datum/tid.

Permalänk: https://www.webforum.nu/p/1759789

## #10 — LarsG, 2006-02-01T19:53Z

Det kanske inte går så bra att göra mid på en sådan typ. 

Om du testar

```
Set rs = connect.Execute("select sum(cint(mid(cstr(flygtid),1,2))*3600) from flygtid")
```

Permalänk: https://www.webforum.nu/p/1759794

## #11 — joel_joel88, 2006-02-01T19:57Z

Nu får jag inget felmeddelande men summan blir 0 :o

Permalänk: https://www.webforum.nu/p/1759795

## #12 — joel_joel88, 2006-02-02T14:29Z

Någon som vet vad det kan vara för fel när jag får summan 0 även fast det är inmatade tider?

Permalänk: https://www.webforum.nu/p/1760040

## #13 — joel_joel88, 2006-02-03T15:22Z

Ingen som vet eller har ni glömt bort tråden? :)

Permalänk: https://www.webforum.nu/p/1760537

## #14 — Peter S, 2006-02-03T15:47Z

För mig resulterar följande

```
select sum(mid(flygtid,1,2))*3600 from flygtid
```

...med detta innehåll i 'flygtid'

```
flygtid
10:10:12
12:35:01
15:00:10
06:34:17
09:56:59
```

...i

```
187 200
```

Permalänk: https://www.webforum.nu/p/1760549

## #15 — joel_joel88, 2006-02-03T15:49Z

så ska det ju inte vara. Jag vill summera flygtiden så att resultatet blir i det här formatat.

Ex. Altså 20 timmar och 40 min.
20:40

Permalänk: https://www.webforum.nu/p/1760551

## #16 — Peter S, 2006-02-03T15:57Z

Med

```
select sum(mid(flygtid,1,2))*3600 + sum(mid(flygtid,4,2))*60 + sum(mid(flygtid,7,2)) as summa from flygtid
```

...får du ut den totala summeringen i sekunder. Det talet kan du sedan transfomera i ASP/VBScript till det format du vill ha.

Permalänk: https://www.webforum.nu/p/1760555

## #17 — Peter S, 2006-02-03T16:04Z

Anledningen till att Lars kod gav ett felmeddelande är att det saknas en avslutande parentes efter '7,2))':

```
select sum(cint(mid(flygtid,1,2))*3600+cint(mid(flygtid,4,2))*60+cint(mid(flygtid,  7,2))) as summa from flygtid
```

Lite snyggare än mitt förslag  :)

Permalänk: https://www.webforum.nu/p/1760562

## #18 — joel_joel88, 2006-02-03T16:10Z

Ok, tack. Men det måste finnas någon smidig funktion för att få ut summan av tiden. Det måste ju vara rätt vanligt att man vill göra det. Om inte hur gör jag om det så jag får det här formatet, TT:MM.

Permalänk: https://www.webforum.nu/p/1760564

## #19 — Peter S, 2006-02-03T16:34Z

Vi kan börja med att förenkla ytterligare. Mid() kan ersättas med Hour(), Minute() och Second():

```
select sum(hour(flygtid)*3600+minute(flygtid)*60+second(flygtid)) as summa from flygtid
```

Sedan:

```
a = cint(rs("summa"))

'timmar
h = round(a / 3600 - 0.5)

'minuter
m = round((a / 3600 - h) * 60 - 0.5)
```

Permalänk: https://www.webforum.nu/p/1760573

## #20 — joel_joel88, 2006-02-03T18:01Z

Tackar nu fungerar det...nästan. Jag har nu totalt 1 timme och 20 minuter i databasen fast det skrivs ut som 1:19. Är det så att denna kod avrundar neråt och hur fixar jagså att det blir rätT?

Permalänk: https://www.webforum.nu/p/1760599

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/141841-summa-tid  
Nästa sida: https://www.webforum.nu/amne/databaser-sql/141841-summa-tid/page2.md
