(unix_timestamp() - unix_timestamp(online_start))/60 + online_time
online_start = datetime ?
online_time = int ?
4 svar · 195 visningar · startad av mozilla
Jag har tyvärr insett att den vackra funktionen DateDiff inte finns i mySQL och tänkte därför söka er hjälp med hur jag ska göra istället. Koden som jag använde i min SQL sats innan var:
DateDiff(""n"",online_start,Now()) + online_time
Där online_start är den tid man loggar in på hemsidan, och online_time är den tid i minuter man tidigare varit inloggad.
De funktioner jag hittat i mySQLs dokumentation har inte klarat av att få ut minuter. Och en sökning wF gav lite hjälp men inte i just mitt fall. Det jag hittade var detta:
(unix_timestamp(now()) - unix_timestamp(online_start))/100 + online_time
Men den returnerar inte rätt svar :/
(unix_timestamp() - unix_timestamp(online_start))/60 + online_time
online_start = datetime ?
online_time = int ?
online_start = datetime ?
online_time = int ?
Jo det stämmer.. Men det fungerar inte ändå? Jag testade att vara inloggad i 1 minut men då sparade den 7 i databasen?
Du får väl dela upp och testa ut saker och ting separat och se om värdena är rimliga.
select unix_timestamp() , now()
unix_timestamp(online_start) , online_start,
online_time
from users where username = 'mozilla'
Aha, mySQL ligger på en annan server. Och den klockan stämmer inte... Det var därför jag fick fel värden. :)