09. september 2000 - 13:15Der 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 ;)
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
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)
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 ??
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)
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.
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 :(
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...
Synes godt om
Ny brugerNybegynder
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.