Modification des dates d'une table mysql

Modification des dates d'une table mysql - PHP - Programmation

Marsh Posté le 17-12-2006 à 23:55:54    

Bonjour,
J'ai crée un site avec entre autre une table (MySQL) qui compatbilise le nombre de visites. La table contient 3 champs:
IP, Date (jj-mm-aaaa), Heure. Il y actuellement un peu moins de 1000 visites.
Après reflexion, le client aimerait que soit répertorié les visites en fonction du mois.
J'avais pensé à le faire en utilisant le timestamp. C'est ok pour les visites prochaines, mais je ne vois pas comment faire pour retransformer toutes les anciennes visites. Je ne veux pas le faire une par une, j'en aurais pour 1 mois.
 
J'aimerais alors savoir comment faire pour que toutes les dates se transforment en timestamp.  
 
Merci.
 
Si ce n'est pas claire, je reexpliquerai. Merci

Reply

Marsh Posté le 17-12-2006 à 23:55:54   

Reply

Marsh Posté le 18-12-2006 à 02:16:32    

time stamp, ca correspond pas à une heure :??:  
 
Plutôt utiliser un champ de type "datetime" pour avoir la date et l'heure [:figti]  
(ou 2 champs date et time séparés)

Reply

Marsh Posté le 18-12-2006 à 03:27:36    

Timestamp c'est le nombre de secondes depuis le début d'unix, donc tu peux facilement retrouver la date rien qu'avec les fonction du sgbd :spamafote:
 
Cela dit en effet un datetime évitera les usines à gaz ultérieures si beaucoup de traitement en lien avec la date. Mais si c'est juste pour de l'affichage, ce qui serait souhaitable les histoires de vidage de table ça craint, suffit de calculer le timestamp de minuit le premier jour et celui du dernier jour du moi ;) Comme avec un datetime :spamafote:
 
Par pitié pas les champs séparés, par pitiiiiiiiiiiiiiiiiiééé :d
 

Reply

Marsh Posté le 18-12-2006 à 22:37:09    

Oui, je sais pour le timestamp. Ce que j'aimerais c'est rajouter une colonne afin d'avoir le timestamp pour toute mes dates et faciliter ainsi le tri.
Mais je vais voir avec le datetime.
Merci de vos infos

Reply

Marsh Posté le 20-12-2006 à 16:21:35    

Pourquoi veux tu avoir plusieurs colonnes avec une information plus ou moins identique :??: Tu peux faire ce que tu veux avec le datetime ou timestamp après :spamafote:

Reply

Marsh Posté le 20-12-2006 à 16:31:07    

pourquoi tu fais pas simplement un month de ta date dans ta requete sql?

Reply

Marsh Posté le 20-12-2006 à 22:37:35    

Je pense ne pas avoir été assez explicite:
la BD est faite et contient actuellement plus de 1000 visites avec IP et date (jj-mm-aaaa).
Le problème est que quand je fais une requete pour avoir un affichage (dé)croissant, il me le fait en fonction d'abord de 'jj', ensuite de 'mm'.
Du coup, je me retrouve avec quelque chose du genre:
 
 
Date            IP
01-09-2006   62.xxx.xxx.xxx
08-10-2006   128.xxx.xxx.xxx
09-09-2006   85.xxx.xxx.xxx
etc...
 
Or c'est pour ça que j'avais evoqué le timestamp afin de mofifer toutes les dates déja enregistrées pour que le tri se fasse beaucoup plus facilement.
 
Merci encore de vos aides et conseils
 
 :hello:


Message édité par oualad le 20-12-2006 à 22:39:36
Reply

Marsh Posté le 21-12-2006 à 00:46:10    

En fait, ton jj-mm-aaaa, c'est du texte et pas une date :ouch:  
Et ca, c'est très très très très très très très très très très très très très mauvais :o  
 
Tu peux essayer d'ajouter un champ de type date et de l'alimenter depuis ce champ [:proy]

Message cité 1 fois
Message édité par mrbebert le 21-12-2006 à 00:47:18
Reply

Marsh Posté le 21-12-2006 à 00:52:26    

mrbebert a écrit :

En fait, ton jj-mm-aaaa, c'est du texte et pas une date :ouch:  
Et ca, c'est très très très très très très très très très très très très très mauvais :o  
 
Tu peux essayer d'ajouter un champ de type date et de l'alimenter depuis ce champ [:proy]


On s'approche, on s'approche. Voilà ma question: comment y parvenir justement. Je ne veux pas le script mais qu'on m'explique la manière.
Du point de vue "c'est très très très très très très très très très très très très très mauvais", maintenant je le sais. :wahoo:  
 
 
Merci

Reply

Marsh Posté le 21-12-2006 à 01:02:34    

Ca va être de la bidouille à base de fonctions de concaténation et de sous-chaînes :)  
 
Du genre :
UPDATE table
SET vrai_date=CONCAT(SUBSTR(fausse_date, 7, 4), '-', SUBSTR(fausse_date, 4, 2), '-', SUBSTR(fausse_date, 1, 2))
 
A voir pour les paramètres de SUBSTR (la numérotation commence bien à 1 pour le 1er caractère ....)
Et après vérification que toutes les "dates" enregistrées ont bien ce format (par exemple, "1-12-2006" passera pas alors que "01-12-2006" sera bien traité)
 
Après, quand tu auras des vrais dates, tu pourras les manipuler beaucoup plus facilement :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed