Avatar billede weblance Nybegynder
04. april 2008 - 22:20 Der er 4 kommentarer og
1 løsning

Skal bruge en sum af tid mellem to tidspunkter

Jeg skal bruge summen mellem to tidspunkter, måned og år, og tænkte at bruge dette:

SELECT SUM(tid) AS sumtid FROM rapport WHERE MONTH(dato) BETWEEN $startmaaned AND $slutmaaned AND YEAR(dato) BETWEEN $startaar AND $slutaar

Det fungerer godt nok så længe $startaar og $slutaar er det samme, men så snart de er uens får jeg 0 i resultatet - hvad gør jeg galt?
Avatar billede 2c Nybegynder
04. april 2008 - 22:58 #1
Jeg gætter på at MONTH(dato) returnerer en integer.

Det ville være bedst hvis du havde en dato, eller lavede en dato med din mdr og år, så du bare kunne sige:
WHERE dato  BETWEEN $startdato AND $slutdato
Avatar billede arne_v Ekspert
05. april 2008 - 04:43 #2
2c's forslag er absolut det rigtige forslag.

SELECT SUM(tid) AS sumtid
FROM rapport
WHERE 12*YEAR(dato)+MONTH(dato) BETWEEN 12*$startaar+$startmaaned AND 12*$slutaar+$slutmaaned

bør også virke.

Men det svarer altså lidt til at køre fra København til Roskilde ved at køre 25000 km mod øst !
Avatar billede weblance Nybegynder
05. april 2008 - 13:27 #3
2c > jeg har valgt din løsning og laver bare to datoer:

$startdato = $startaar . "-" . $startmaaned . "-01";
$slutdato = $slutaar . "-" . $slutmaaned . "-" . $slutdag;

hvor $slutdag laves sådan: $slutdag = date('t', mktime(0, 0, 0, $slutmaaned, 1, $slutaar));

og til sidst sql: SELECT SUM(tid) AS sumtid FROM rapport WHERE dato BETWEEN '$startdato' AND '$slutdato'

Send et svar, så får du point :)
Avatar billede 2c Nybegynder
05. april 2008 - 18:02 #4
svar
Avatar billede weblance Nybegynder
05. april 2008 - 19:25 #5
Tak
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