/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL: where-betingelse
Fra : Tonni Aagesen


Dato : 19-01-02 13:33

Hejsa NG,

Jeg bruger MySQLs now() funktion til at sætte en timestamp i min tabel. Jeg
vil gerne f.eks. finde de rækker der er indsat indenfor de sidste to timer
og har lavet følgende SQL sætning til at klare dette:
$p = time() - 7200;

SELECT id, dato as D, (FROM_UNIXTIME($p) +0) FROM hitslog WHERE
'(FROM_UNIXTIME($p) +0)'<'D';

Uanset hvad jeg gør, smider den samtlige rækker i databasen ud. Her er
udsnit af outputtet:

ID D time() -7200

141 - 20020119100231 - 20020119111318
142 - 20020119102311 - 20020119111318
143 - 20020119130607 - 20020119111318
144 - 20020119130610 - 20020119111318

Som det ses er der både rækker der opfylder where-betingelsen og rækker der
ikke gør.

Er der et trick?


--
Mvh
Tonni Aagesen
agent29@mail1.stofanet.dk








 
 
Christian Schmidt (19-01-2002)
Kommentar
Fra : Christian Schmidt


Dato : 19-01-02 13:52

Tonni Aagesen wrote:
>
> Jeg bruger MySQLs now() funktion til at sætte en timestamp i min tabel. Jeg
> vil gerne f.eks. finde de rækker der er indsat indenfor de sidste to timer
> og har lavet følgende SQL sætning til at klare dette:
> $p = time() - 7200;
>
> SELECT id, dato as D, (FROM_UNIXTIME($p) +0) FROM hitslog WHERE
> '(FROM_UNIXTIME($p) +0)'<'D';

Du skal ikke bruge pinger (apostroffer). Flg. skulle virke:

SELECT id, dato FROM hitslog WHERE FROM_UNIXTIME($p) < dato


Evt. kan du lade MySQL stå for at trække de to timer fra:

SELECT id, dato FROM hitslog WHERE NOW() - INTERVAL 2 HOUR < dato


Christian

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste