Page 1 sur 1

date format time !!

Posté : 20 mars 2007, 16:42
par moicmoi
Bonjour à tous,

j'ai une question sur le format des dates .

je reprend la programmation d'un site, le format de la date d'inscription des membres est entré au format time().

exemple dans la base de donnée un membre qui s'est inscrit le :
09/03/2007 s'écrit : 1173464020

si je veux faire une recherche par requête pour savoir quelles sont les membres qui se sont inscris il y'a 11 jours (09/03/2007) comment devrai-je faire ma requête SVP ? :oops:

exemple :

SELECT user_id,username FROM membres where user_inscript='???????'";

J'ai regardé la doc mais c'est tellement compliqué, j'ai vu cet exemple mais ça ne marche pas !!
mysql> SELECT something FROM tbl_name
-> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;
merci de votre aide

Posté : 20 mars 2007, 17:24
par Dominic
si ta durée de 11 jours est une constante tu peux toujours faire
$instant = (date('U'));

mysql> SELECT something FROM tbl_name WHERE $instant -champ_date > 950400 ;

ici 950400 correpond à 11 jours en format time
ceci sélectionnera tous les champs antérieurs à 11 jours

autrement tu paramétres en fonction du nb de jours souhaités

Posté : 20 mars 2007, 17:56
par sharep98
Tu peux utiliser la fonction TIMESTAMPDIFF pour calculer la différence entre
deux timestamps (=le format time()).

Code : Tout sélectionner

SELECT user_id, username FROM membres WHERE TIMESTAMPDIFF(DAY, user_inscript, NOW())=11

Posté : 20 mars 2007, 20:21
par moicmoi
merci pour vos réponses,

en vrai les 11 jours c'est pour faire des essais mais en réalité, c'est une alerte que je veux faire, cad que tous les jours je regarde la veille qui s'est inscrit et j'envoie l'alerte selon les critères.

en faite

ma requête sert à ressortir tous ceux qui se sont inscrits la veille genre Day-1 .

j'ai essayé les deux requêtes ça ne marche pas j'ai même fait ça :

$dateaujoudhui = time();
$datedepoo = "$dateaujoudhui" - 950400;

pour trouver ceux qui se sont inscris il y'a 11 jours

SELECT user_id,username FROM membres where user_inscript=$datedepoo";

c'est juste et pas juste car $dateaujoudhui n'est pas statique vu qu'il prend en compte les secondes, ce qui fait que ça change toutes les secondes, il faut que j'arrive à lui demander de prendre en compte que les jours, mais bon c'est plus une usine à gaz, il doit y'avoir une manière plus simple.

Posté : 20 mars 2007, 21:09
par Invité
Bon j'ai fais ça, ça marche, mais bon je pense qu'il y'a une méthode beaucoup plus simple, à chercher !!

$dateaujoudhui = time(); // date d'aujourd'hui en format time
$datedepoo = "$dateaujoudhui" - 950400; // chercher la date de 11 jours en arriere.
$datedepooo= substr($datedepoo, 0, 5); // je prends les 5 premiers chiffres qui représente je pense le jour, la date et l'année

SELECT user_id,username FROM membres where user_inscript like '$datedepooo%'

ça me renvoie tous les membres enregistrés le 09/03/2007

si qq1 a mieux je suis preneur . merci

Posté : 23 mars 2007, 18:05
par Expreg
Voilà ce qui arrive lorsque l'on utilise pas les types de champs adéquats.
On met une date dans un type DATE ou DATETIME et on utilise la fonction SQL NOW()

Enfin, à moins de changer vraiment le type de champ, tout ce que tu pourras faire sera plus proche du bricolage.

Posté : 24 mars 2007, 11:47
par moicmoi
je suis ok avec toi mais bon ce n'est pas ma programmation , la je reprend et je tricote.

merci

Posté : 24 mars 2007, 12:19
par Expreg
je suis ok avec toi mais bon ce n'est pas ma programmation , la je reprend et je tricote.

merci
Alors la question a te poser est celle-ci :
- dois-je persister dans l'apprentissage du tricot ou plutôt envisager d'apprendre à programmer vraiment.

Ce n'est pas une critique, c'est une approche, une direction, une perspective ! :wink: