Gå til innhold

inndata til timediff (mysql)


Anbefalte innlegg

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?

Lenke til kommentar
Videoannonse
Annonse
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...

Lenke til kommentar
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?

Lenke til kommentar

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.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...