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?
Annonceindlæg tema
Cloud & AI
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
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
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 !
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 :)
2c
Nybegynder
05. april 2008 - 18:02
#4
svar
05. april 2008 - 19:25
#5
Tak
Computerworld tilbyder specialiserede kurser i database-management