Page 1 sur 2

Effacer en fonction d'une date

Posté : 24 oct. 2021, 21:52
par filou80
Bonjour à tous,
Je ne parviens pas faire ma requete sql.
Je voudrais qu'en fonction de la date de creation et du status que si le status n'est pas modifier dans un labs de temps l'utilisateur s'efface (delete).
Voici comment ma table est faite :
id - mail - pseudo - creation - maj - status (creation et maj sont en date time)

J'ai commencer a faire cela mais je bloque pour dire si maj superieur a 3h par rapport a la date de creation :
DELETE * FROM `utilisateurs` `WHERE` actif =`0` AND `maj` = `creation` AND ICI notion de temps par rapport a la date du jour par exemple supérieur à 3h ;
Mais je ne parviens pas à le faire.
Merci par avance pour votre aide.

@+ Filou

Re: Effacer en fonction d'une date

Posté : 25 oct. 2021, 12:20
par @rthur
Hello,

Tu peux faire ça avec la fonction SQL TIMEDIFF() pour calculer la différence entre deux dates et la fonction NOW() pour avoir la date du jour
https://sql.sh/fonctions/timediff
https://sql.sh/fonctions/now

Re: Effacer en fonction d'une date

Posté : 25 oct. 2021, 14:03
par filou80
Mais comment je lui dit la différence de 3h

@+ Filou

Re: Effacer en fonction d'une date

Posté : 25 oct. 2021, 14:12
par or 1
vous avez lu le premier lien donné jusqu'à la fin ?

Re: Effacer en fonction d'une date

Posté : 25 oct. 2021, 17:57
par filou80
Oui tout a fait cela
TIMEDIFF(CURTIME(), date_ajout) < "00:30"
Mais je ne parviens pas à l'associer avec ma requete sql :
DELETE * FROM `utilisateurs` WHERE `actif` = 0 AND `maj` = `creation` AND TIMEDIFF(CURTIME(), `maj`) < "03:00";
Cela ne fonctionne pas.

Merci de votre aide et de vos conseils.

@+ Filou

Re: Effacer en fonction d'une date

Posté : 26 oct. 2021, 09:59
par @rthur
Commence par faire un SELECT et construis + teste ta requête dans phpmyadmin ça t'aidera.
Si tu fais un SELECT TIMEDIFF(CURTIME(), `maj`) FROM tatable tu verras ce que renvoie TIMEDIFF notamment

Re: Effacer en fonction d'une date

Posté : 26 oct. 2021, 12:55
par filou80
Bonjour,

Cela me renvoi 2 lignes ou dans la colonne il y a 2 Null.

Cdlt
@+ Filou

Re: Effacer en fonction d'une date

Posté : 01 nov. 2021, 12:40
par filou80
Bonjour,

Je reste bloquer sur ma problématique, si quelqu'un passe par la pour m'aider....
Merci par avance.

@+Filou

Re: Effacer en fonction d'une date

Posté : 01 nov. 2021, 13:10
par or 1
quelle est la requête testée dans phpmyadmin ?
quelle est la structure de la table et son contenu ?

Re: Effacer en fonction d'une date

Posté : 01 nov. 2021, 14:40
par filou80
Bonjour,
Merci pour votre aide, voici comment ma table est faite :
id - mail - pseudo - creation - maj - status (creation et maj sont en date time)
et voici la requête que j’essaie de faire :
DELETE * FROM `utilisateurs` `WHERE` actif =`0` AND `maj` = `creation` AND ICI notion de temps par rapport a la date du jour par exemple supérieur à 3h ;
@+ Filou

Re: Effacer en fonction d'une date

Posté : 01 nov. 2021, 14:59
par or 1
" Si tu fais un SELECT TIMEDIFF(CURTIME(), `maj`) FROM tatable tu verras ce que renvoie TIMEDIFF notamment"

quelle est la requête testée dans phpmyadmin ?

Re: Effacer en fonction d'une date

Posté : 01 nov. 2021, 17:45
par filou80
quand je fais la requête cela me renvoi 2 lignes ou dans la colonne il y a 2 Null.

Re: Effacer en fonction d'une date

Posté : 01 nov. 2021, 18:42
par or 1
quelle est la requête testée dans phpmyadmin ?
quelle est le contenu de la table ?

Re: Effacer en fonction d'une date

Posté : 01 nov. 2021, 23:51
par filou80
Voici ma table :
Image
Voici la requete avec le resultat:
Image

Moi je souhaite effacer les resultat de plus ou la date de creation et et la date de mise a jour son identique avec le status a 0 de plus de 3h par rapport a la date actuel.

Je sais pas si je suis clair dans mon explication ?

Merci pour votre aide.

@+ Filou

Re: Effacer en fonction d'une date

Posté : 02 nov. 2021, 00:28
par or 1
il faut faire un copier/coller de la requête d'Arthur, et pas la retaper en changeant quelque chose qui fait que cela ne fonctionne plus.