sql >> Database teknologi >  >> RDS >> Mysql

Gruppering af tidsstempler i MySQL med PHP

Peter

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

Dit resultatsæt, givet ovenstående data, ville se sådan ud:

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

Mange flere relaterede funktioner kan findes her .

Rediger

Efter at have lavet nogle af mine egne test baseret på outputtet af din kommentar fandt jeg ud af, at din database er i en tilstand af episk fejl . :) Du bruger INT'er som TIMESTAMPs. Dette er aldrig en god idé. Der er ingen berettiget grund til at bruge en INT i stedet for TIMESTAMP/DATETIME.

Når det er sagt, skal du ændre mit eksempel ovenfor som følger:

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

Rediger 2

Du kan bruge yderligere GROUP BY-sætninger for at opnå dette:

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

Bemærk, jeg har udeladt FROM_UNIXTIME() for kortheds skyld.




  1. QUALIFY-lignende funktion i SQL Server

  2. Opret tabel - SQL-fejl:ORA-00905:mangler nøgleord

  3. Tjek, om brugernavnet allerede findes i databasen MySQL PHP

  4. Hvordan bestemmer man den største opløsning af et INTERVAL?