login  Naam:   Wachtwoord: 
Registreer je!
 Forum

SQL INTERVAL vraagje

Offline RonsterS - 04/12/2008 18:39
Avatar van RonsterSNieuw lid Hoi,

Ik heb een timestamp veld en nu wil ik de record die binnen de laatste 5 uren valleen eruit halen.

ik d8 zelf iets als: AND DATE_ADD(snocreatedts, INTERVAL - 5 HOUR) alleen dat lijkt niet echt te werken.

Heeft iemand een idee hoe ik dit op query niveau kan doen?.

7 antwoorden

Gesponsorde links
Offline Wim - 04/12/2008 18:44
Avatar van Wim Crew algemeen volgens mij heb je bij die functie een DATETIME veld nodig. Een timestamp zijn de seconden sinds een bepaalde datum, normaal 1 januari 1970 als ik het me goed herinner. Je kan dus gewoon in seconden rekenen hoeveel 5 uur is (5h * 60min * 60s = 5*3600 = 18000)

WHERE timestamp > timestamp-18000

zoiets zou dus moeten werken ...
Offline RonsterS - 04/12/2008 18:47
Avatar van RonsterS Nieuw lid data staat op de volgenmde mnaier in de db

2008-11-29 16:37:57
Offline Wim - 04/12/2008 18:49
Avatar van Wim Crew algemeen Misschien kan je het eens met DATE_SUB() proberen? Werkwijze is dezelfde, enkel trek je hier het interval van de datum af...
Offline RonsterS - 04/12/2008 18:54
Avatar van RonsterS Nieuw lid heb ik al geprobeerd. ik krijg dan nog steeds records terug die van bijv gisteren zijn.
Offline Stefan14 - 04/12/2008 18:56
Avatar van Stefan14 PHP gevorderde Het kan zelfs nog makkelijker, je hoeft date_add of date_sub niet te gebruiken, probeer het volgende maar eens:
  1. <?php
  2. $query = "SELECT created - INTERVAL 5 HOUR FROM tabel";
  3. $result = mysql_query($query) or die (mysql_error());
  4. ?>


Dit werkt wel, maar het zou kunnen dat je er nog haakjes omheen moet zetten en/of een alias moet toekennen.
Offline Wim - 04/12/2008 19:46
Avatar van Wim Crew algemeen Nee dat werkt niet.... Dan gaat hij ALLE tijden uit de tabel selecteren, en er overal 5 uur aftrekken... Dat is dus niet het gewenste resultaat...

geef trouwens de volledige query eens. Volgens mij geef je parameter 1 verkeerd mee. Die moet namelijk NOW() zijn of iets dergelijks (je moet van de HUIDIGE tijd 5 uur aftrekken, en deze vergelijken met de tijd in de database!)
Offline Stefan14 - 04/12/2008 19:51
Avatar van Stefan14 PHP gevorderde ok, dan maak je er dit van
  1. <?php
  2. $query = "SELECT userID FROM tabel WHERE NOW() - INTERVAL 5 HOUR <= lastonline";
  3. $result = mysql_query($query) or die (mysql_error());
  4. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.185s