Aide SQL regroupement sur datetime...

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


OJAL
WRInaute accro
WRInaute accro
 
Messages: 1116
Inscription: Jeu Avr 10, 2003 18:34

Aide SQL regroupement sur datetime...

Message le Sam Juin 16, 2007 23:38

Bonjour,

Je sohaite compter le nombre d'enregistrements sur une table jour par jour, mais voila, je n'ai pas stocké de champs date, j'ai simplement un champ DATETIME...
Quelle requête feriez-vous?
Ne serait-il pas intéressant de stocker la date lors de chaque enregistrement pour faciliter ensuite la requête??

Merci par avance ;-)

bigjet
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 211
Inscription: Dim Nov 21, 2004 18:30

Message le Sam Juin 16, 2007 23:56

Tu récupère le timestamp de la journée (mktime en PHP), et ensuite tu contruis un intervalle (en rajoutant 24heures par exemple).

Et tu fais un SELECT between **debut_intervale** AND **fin intervalle**


Mais bon, pour manipuler les dates, vaut mieux utiliser un champ de type date (avis personnel).


Bh@Mp0
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 245
Inscription: Mar Jan 18, 2005 19:02

Message le Dim Juin 17, 2007 8:29

Par exemple, si ton champ datetime s'appelle mydatetime :
Code: Tout sélectionner
SELECT *, DATE_FORMAT(`mydatetime`, '%d/%m/%Y') AS `mydate` FROM `mytable` GROUP BY `mydate`


J'ai supposé :
* qu'on prend tous les champs
* que la table s'appelle mytable
* que je n'ai pas de clause WHERE (il est possible d'en mettre une à votre convenance)
* qu'on laisse l'ordre par défaut (on pourrait ordonner avec un ORDER BY)

Ah ! Aussi, j'ai mis la date au format JJ/MM/YYYY, mais il est possible de choisir un format "universel" (YYYY-MM-JJ), ou un format bizarre (JJ#YYYY#MM, MM~YYYY~JJ, ...). C'est juste que j'ai considéré que la date au format français pourrait être réutilisée :)


OJAL
WRInaute accro
WRInaute accro
 
Messages: 1116
Inscription: Jeu Avr 10, 2003 18:34

Message le Dim Juin 17, 2007 10:18

Merci Bh@Mp0,

Juste une petite rectfication ;-)
Pour compter le nombre d'enregistrements, il suffit de faire un SELECT COUNT(*) au lieu du SELECT *

Tout fonctionne très bien et la requête semble assez légère ;-)

Merci!


Bh@Mp0
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 245
Inscription: Mar Jan 18, 2005 19:02

Message le Dim Juin 17, 2007 10:37

Pardon, j'avais pas lu que tu voulais seulement compter le nombre d'enregistrements date par date. En effet, dans ce cas-là, autant faire un
Code: Tout sélectionner
COUNT(DISTINCT `id`) AS `count`

où id est une clef.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités