Regrouper des résultats par jour, avec une valeur time() ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Regrouper des résultats par jour, avec une valeur time() ?

Re: Regrouper des résultats par jour, avec une valeur time() ?

par Const » 24 févr. 2010, 12:16

Ca à fonctionné, merci beaucoup, j'ai appris un truc :)

Pour info, voici ma requête :
SELECT COUNT( *  ) AS `nb` , STR_TO_DATE( FROM_UNIXTIME( `emails_date` ) , '%Y-%m-%d' ) AS `date`
		FROM `emails`
		WHERE `emails_date` >= UNIX_TIMESTAMP( '2009-01-01' )
		AND `emails_date` <= UNIX_TIMESTAMP( '2009-12-31' )
		GROUP BY STR_TO_DATE( FROM_UNIXTIME( `emails_date` ) , '%Y-%m-%d' )
		ORDER BY `emails_date` ASC

Re: Regrouper des résultats par jour, avec une valeur time() ?

par Const » 14 févr. 2010, 00:06

Haaa merci vais regarder.

Re: Regrouper des résultats par jour, avec une valeur time() ?

par stealth35 » 13 févr. 2010, 17:00

Regrouper des résultats par jour, avec une valeur time() ?

par Const » 13 févr. 2010, 13:16

Bonjour, voici ma table :
CREATE TABLE `emails` (
  `emails_id` int(11) NOT NULL auto_increment,
  `client_id` int(11) NOT NULL,
  `emails_imap` varchar(75) NOT NULL,
  `emails_headers` text NOT NULL,
  `emails_type` varchar(20) NOT NULL,
  `emails_date` int(11) NOT NULL,
  `emails_date_l` date NOT NULL,
  `emails_subject` varchar(250) NOT NULL,
  `emails_message_id` varchar(250) NOT NULL,
  `emails_to` varchar(250) NOT NULL,
  `emails_from` varchar(250) NOT NULL,
  `emails_no` int(11) NOT NULL,
  `emails_size` int(11) NOT NULL,
  `emails_udate` int(11) NOT NULL,
  `emails_maildate` int(11) NOT NULL,
  `emails_charset` varchar(15) NOT NULL,
  PRIMARY KEY  (`emails_id`),
  KEY `artiste_id` (`artiste_id`)
) ENGINE=MyISAM AUTO_INCREMENT=2535 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2535 ;
J'y enregistre des emails donc.
Mon but est de savoir combien je reçois d'email par jour. Mon problème est que j'ai, en champs "date", une valeur 'time()' donc je ne peux pas faire ce que je sais faire, c'est à dire :
SELECT COUNT(*) AS `nb`, `emails_date` AS `date` FROM `emails` WHERE `emails_date` >= '" . strtotime('2009-01-01') . "' AND `emails_date` <= '" . strtotime('2009-12-31') . "' GROUP BY `emails_date` ORDER BY `emails_date` ASC
Car, et c'est normal, il me groupe les résultats, par seconde. Avez-vous une idée pour pouvoir les grouper par jour en utilisant un champs contenant une valeur time() ?

Merci !