¿Es posible hacer una consulta simple para contar cuántos registros tengo en un período de tiempo determinado como un Año, mes o día, teniendo un campo TIMESTAMP
, como:
SELECT COUNT(id)
FROM stats
WHERE record_date.YEAR = 2009
GROUP BY record_date.YEAR
O incluso:
SELECT COUNT(id)
FROM stats
GROUP BY record_date.YEAR, record_date.MONTH
Para tener una estadística mensual.
Gracias.
GROUP BY YEAR(record_date), MONTH(record_date)
Comprueba las funciones de fecha y hora en MySQL.
GROUP BY DATE_FORMAT(record_date, '%Y%m')
*Nota (principalmente, para los potenciales votantes a la baja). Actualmente, esto puede no ser tan eficiente como otras sugerencias. Aún así, lo dejo como una alternativa, y una, también, que puede servir para ver la rapidez de otras soluciones. (Además, con el paso del tiempo, se podrían hacer cambios en el motor de MySQL con respecto a la optimización para que esta solución, en algún momento futuro (quizás no tan lejano), sea comparable en eficiencia con la mayoría de las demás.
Intenté usar la sentencia 'WHERE' de arriba, pensé que era correcta ya que nadie la corrigió pero me equivoqué; después de algunas búsquedas encontré que esta es la fórmula correcta para la sentencia WHERE así que el código queda así:
SELECT COUNT(id)
FROM stats
WHERE YEAR(record_date) = 2009
GROUP BY MONTH(record_date)