t0bbi Skrevet 27. februar 2008 Skrevet 27. februar 2008 Jeg vil bruke timediff funksjonen i mysql, men i stedet for å skrive inn dato og tid som følgende: "SELECT TIMEDIFF('2000:01:01 00:00:00','2000:01:01 00:00:00.000001');", vil jeg få in dato1 og dato2 fra 2 select setninger. Har prøvd foskjellige ting uten hell, feks: SELECT TIMEDIFF(select spørring1,select spørring2); Noen som har noen bedre forslag?
t0bbi Skrevet 27. februar 2008 Forfatter Skrevet 27. februar 2008 Jeg vil bruke timediff funksjonen i mysql, men i stedet for å skrive inn dato og tid som følgende: "SELECT TIMEDIFF('2000:01:01 00:00:00','2000:01:01 00:00:00.000001');", vil jeg få in dato1 og dato2 fra 2 select setninger. Har prøvd foskjellige ting uten hell, feks: SELECT TIMEDIFF(select spørring1,select spørring2); Noen som har noen bedre forslag? Har nå funnet ut at jeg muligens kan lage en prosedyre som løser problemet mitt. Foreløpig har jeg følgende prosedyre: CREATE DEFINER=`root`@`localhost` PROCEDURE `ProcSelectFraTilDato`( IN _start INT, IN _slutt INT, IN _starttid DATETIME, IN _slutttid DATETIME ) BEGIN DECLARE nedetid TIME; SET _starttid = (SELECT datotid from hendelse where hendelsesid =_start) SET _slutttid = (SELECT datotid from hendelse where hendelsesid =_slutt) SET nedetid = select timediff(_starttid,_slutttid); END Men denne feiler,får melding om syntaxfeil i området rundt "SET _slutttid = (SELECT datotid from hendelse where hendelsesid =_slutt)" Noen som ser hva feilen er? Select setningene i seg selv er testet, men er usikker på om parateser ol. står riktig plassert, har prøvd å sette de andre plasser og å fjerne de helt uten hell...
roac Skrevet 27. februar 2008 Skrevet 27. februar 2008 Jeg vet ikke hvor kresen MySQL er på at spørringer avsluttes med ; (semikolon), men det to set-spørringene dine avsluttes ikke med dette.
t0bbi Skrevet 27. februar 2008 Forfatter Skrevet 27. februar 2008 Jeg vet ikke hvor kresen MySQL er på at spørringer avsluttes med ; (semikolon), men det to set-spørringene dine avsluttes ikke med dette. Takk for svaret, men jeg får samme feilmelding med semikolon.
t0bbi Skrevet 27. februar 2008 Forfatter Skrevet 27. februar 2008 Jeg vet ikke hvor kresen MySQL er på at spørringer avsluttes med ; (semikolon), men det to set-spørringene dine avsluttes ikke med dette. Takk for svaret, men jeg får samme feilmelding med semikolon. Ser nå ut til at MySQL ikke liker SET setingene mine, mer spesifikt der jeg har 2 = (er lik tegn) i en SET setning. f.eks vil denne setningen virke: SET _slutttid = '2000:01:01 00:00:00'; mens denne gir feil: SET _slutttid = '2000:01:01 00:00:00'where hendelsesid = _slutt; Noen som vet hvordan jeg kan skive dette uten å få feil?
roac Skrevet 27. februar 2008 Skrevet 27. februar 2008 Ah, nå ser jeg. Du har en select ... where. Denne gir et resultatsett, mao muligens flere rader. Flere rader går ikke sammen med set, som krever en enkelt verdi. Dersom du i steden tar noe i retning av select max(...) where... så returnerer denne én verdi, og jeg regner med at spørringen din går i orden.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå