8791 sujets

Développement web côté serveur, CMS

Bonjour à tous.
Voici mon problème je cherche a savoir via cette methode qui est connecte sur la base depuis - de une minute
( j 'ai une table history qui enregistre les dernières activités de la personne qui est logé via le champ lastactivitydate qui est au format =2009-08-12 18:50:44)


a écrit :
SELECT *
FROM history
WHERE (NOW()- lastactivitydate) <= 1

Mais ça marche pas car la formule n'est pas la bonne je pense !?.
Smiley langue
Modifié par outage (13 Aug 2009 - 11:38)
Salut,

outage a écrit :
via le champ lastactivitydate qui est au format =2009-08-12 18:50:44
Un champ de type DATETIME en somme...

outage a écrit :
Mais ça marche pas car la formule n'est pas la bonne je pense !?
Ben non... mais en même temps la syntaxe SQL ça ne se devine pas : il faut lire la doc et les tutos. Smiley murf

Pour ta requête 1 minute ça me semble un peu juste. Tu pourrais faire (par exemple) :
SELECT pseudo FROM matable where (lastactivitydate  + INTERVAL 5 MINUTE) > now()
Salut,

Une autre manière d'obtenir ce que tu veux :

SELECT
   `pseudo`
FROM
   `matable`
WHERE
   UNIX_TIMESTAMP() - UNIX_TIMESTAMP( `lastactivitydate` ) < 300

Mais il semblerait qu'elle soit un poil moins rapide que celle proposée par Heyoan (mais la différence est dérisoire).
Heyoan ta formule ne marche pas il me donne :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT iduser FROM history where (lastactivitydate  + INTERVAL 5 MINUTE)' at line 1
a écrit :
SELECT iduser 
FROM history 
where (lastactivitydate  + INTERVAL 5 MINUTE) > now()
Oulah.

Mettons les choses à plat.

Tu dis que c'est l'INTERVAL qui pose problème. L'erreur que tu nous montres contient le UNIX_TIMESTAMP(), tu ne t'amuserais pas à faire un mixe des deux requêtes des fois, pour tester notre patience ?
Si ce n'est pas le cas, il faudrait p'tet songer à :
1. APPRENDRE le langage (cf la doc)
2. Nous montrer quelle requête exacte tu exécutes, parce qu'encore une fois, nous ne sommes pas devins.
Les deux ne marche pas ,cependant cette formule marche mais ne m'affiche pas de résultats !!!

SELECT *
a écrit :
FROM history
WHERE DATE_SUB('lastactivitydate', INTERVAL 5 MINUTE) > 'NOW()'