sql >> Database >  >> RDS >> Mysql

Tijdstempels groeperen in MySQL met PHP

Pieter

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

Uw resultatenset zou er, gezien de bovenstaande gegevens, als volgt uitzien:

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

Veel meer gerelateerde functies zijn te vinden hier .

Bewerken

Na zelf enkele tests te hebben gedaan op basis van de uitvoer van uw opmerking, heb ik vastgesteld dat uw database zich in een staat van epische mislukking bevindt . :) Je gebruikt INT's als TIMESTAMPs. Dit is nooit een goed idee. Er is geen gegronde reden om een ​​INT te gebruiken in plaats van TIMESTAMP/DATETIME.

Dat gezegd hebbende, zou je mijn bovenstaande voorbeeld als volgt moeten aanpassen:

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

Bewerk 2

U kunt hiervoor aanvullende GROUP BY-clausules gebruiken:

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

Let op, ik heb de FROM_UNIXTIME() voor de beknoptheid weggelaten.




  1. 'Kan geen verbinding maken met MySQL-server op \'db\' Django-Restframework met Mysql in docker

  2. Ontwikkel React met full-stack (WAMP) lokaal

  3. Vervang of verwijder meerdere regels tekst in de opgeslagen procedure van orakel

  4. schrijf resultaten van sql-query naar een bestand in mysql