Mysql
 sql >> Base de données >  >> RDS >> Mysql

Regroupement des horodatages dans MySQL avec PHP

Pierre

SELECT COUNT(*), HOUR(timecode)
FROM timecodeTable
GROUP BY HOUR(timecode);

Votre ensemble de résultats, compte tenu des données ci-dessus, ressemblerait à :

+----------+----------------+
| COUNT(*) | HOUR(timecode) |
+----------+----------------+
|       10 |             18 | 
+----------+----------------+

De nombreuses autres fonctions connexes peuvent être trouvées ici .

Modifier

Après avoir effectué mes propres tests sur la base de la sortie de votre commentaire, j'ai déterminé que votre base de données était dans un état d'échec épique . :) Vous utilisez des INT comme TIMESTAMP. Ce n'est jamais une bonne idée. Il n'y a aucune raison valable d'utiliser un INT à la place de TIMESTAMP/DATETIME.

Cela dit, vous devrez modifier mon exemple ci-dessus comme suit :

SELECT COUNT(*), HOUR(FROM_UNIXTIME(timecode))
FROM timecodeTable
GROUP BY HOUR(FROM_UNIXTIME(timecode));

Modifier 2

Vous pouvez utiliser des clauses GROUP BY supplémentaires pour y parvenir :

SELECT 
  COUNT(*),
  YEAR(timecode),
  DAYOFYEAR(timecode),
  HOUR(timecode)
FROM timecodeTable
GROUP BY YEAR(timecode), DAYOFYEAR(timecode), HOUR(timecode);

Remarque, j'ai omis le FROM_UNIXTIME() par souci de brièveté.