Avatar billede xmaz Nybegynder
09. september 2000 - 13:15 Der er 10 kommentarer og
1 løsning

SUM(tid), hvordan?

Hej
Jeg er løbet ind i et problem mht. følgende SQL-sætning: \"select navn, SUM(tid) from resultat group by navn;\"

kolonnen ved navn tid, _er_ i korrekt datoformat (HH:MM:SS), men SUM(tid) ser ikke ud til at ville aflevere resultatet i samme format.

2 af mine poster ser f.eks. således ud: 8:27:37 og 8:35:15, når jeg tager en SUM på dem bliver resultatet 166252, hvilket ikke ligefrem kan kaldes hensigtsmæssigt ;)

Nogen der kan hjælpe?
Avatar billede styrmand Nybegynder
09. september 2000 - 13:23 #1
Hvad forventer du at få ud af det, når du lægger 2 tidspunkter sammen?
Avatar billede razor Nybegynder
09. september 2000 - 13:28 #2
hvis jeg var dig ville jeg gemme tiden i sekunder og så omregne bagefter
Avatar billede xmaz Nybegynder
09. september 2000 - 13:30 #3
rent faktisk forventer jeg at mysql fatter at tid+tid = tid, og ikke at tid+tid = ubrugeligt tal ;)
Avatar billede razor Nybegynder
09. september 2000 - 13:31 #4
antallet af sekunder er da ikke et ubrugeligt tal. det passer lige ind i php (hvis altså du bruger det ?)
Avatar billede xmaz Nybegynder
09. september 2000 - 13:39 #5
razor: jeps... du har fuldstændig ret... det var mere styrmand\'s kommentar jeg kommenterede ;)

Ideen med sekunderne, er også den plan jeg plejer at bruge, men nu synes jeg lige, at jeg ville prøve det andet her, og jeg finder det meget mærkeligt, at jeg ikke på nogen måde, kan få mysql \"med på min plan\" ;)
(Jeg bruger btw. perl)

// X-maz

Avatar billede tigerdyr Nybegynder
09. september 2000 - 14:21 #6
Tjaa... kunne evt. skyldes at sum fjerner alt der ikke er tal, undtaget komma seperator, (og normalt kun bruge til tal), hvis du kigger på dit resultat får du faktisk det du beder om, mySQL tolker det nemlig som:
82737 + 83515 = 166252

Sum() regner jo med decimal tal, mens du vil have en specielt tidsregning, hvilket du så vidt jeg ved selv er nødt til at lave, for du vil vel også gerne have at 18:00:00 + 6:01:00 = 1 døgn: 00:01:00 ??
Men ellers må jeg nok også stille mig lidt nysgerrig, hvad vil du dog med en sammenregning af tiden ??
Avatar billede tigerdyr Nybegynder
09. september 2000 - 14:24 #7
Så du skal, som sagt, selv til at en funktion der lægger det sammen med
døgn = heltal
timer = heltal (hvis det bliver mere end 24, så +1 til døgn pr. gang det bliver 24 timer)
minutter = heltal (hvis det bliver mere end 60, så +1 til timer pr. gang det bliver 60 minutter)
sekunder = heltal (hvis det bliver mere end 60, så +1 til minutter pr. gang det bliver mere end 60 sekunder)

Rekursivitet, kan vist godt betale sig her...
Avatar billede xmaz Nybegynder
09. september 2000 - 14:35 #8
Tigerdyr: Den med at den fjernede :\'erne og bare regnede tallet ud, havde jeg sådan set også selv regnet ud ;) (tro det eller ej)... men resultatet 16:62:52 kan jeg jo desværre ikke bruge til det store... Jeg troede bare, at mysql måske havde en funktion i stil med:
\"select to_date(sum(tid))\" eller lignende, så den automatisk tæller døgn en op, når den når 24 timer... jeg mener bestemt at jeg har lavet ca. sådan en sætning i oracle (for _laaang_ tid siden). Men ellers, ja selvfølgelig det letteste ville være at kaste det ind i databasen som sekunder, og så bare lave en lign. funktion (som du har beskrevet), men jeg ville bare helst lave det hele i SQL.
Avatar billede xmaz Nybegynder
09. september 2000 - 14:38 #9
doh... accepterede jeg godt nok dit svar, der lidt tilbage... det var ellers ikke planen :(, men hva\', at dømme efter det respons jeg har fået, kan det nok alligevel ikke lade sig gøre at lave pjattet i sql :(
Avatar billede styrmand Nybegynder
09. september 2000 - 14:46 #10
Så var min kommentar måske slet ikke så slem endda.:-)
Det er altid en god ide gøre sig klart, hvad man forventer at få ud af sine anstrengelser.
;-)
Avatar billede tigerdyr Nybegynder
09. september 2000 - 20:35 #11
Mig bekendt er der ingen funktion i SQL der understøtter at beregne et total antal døgn, timer, minutter og sekunder udfra nogle tids felter... det ville jo også betyde at du ville hente fra en attribut af en eller anden tid data-type og gemme det i en datetime data-type...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester