miércoles, abril 24, 2013

Sentencia SQL que retorna el número de registros en cada fecha

Imaginemos que tenemos una tabla ArticleIds que contiene un campo CreationDate definido como datetime con valor predeterminado = getDate( ), y queremos averiguar cuántos registros se han creado cada día entre las 9:00 y las 12:00:

Sentencia SQL:

SELECT t.Fecha,  COUNT(*) AS Cuenta FROM (
  SELECT CONVERT(CHAR(10), creationDate , 103) AS Fecha, CONVERT(CHAR(8), creationDate , 114) as Hora
    FROM [AESQL2008].[dbo].ArticleIds
    WHERE CONVERT(CHAR(5), creationDate , 114) > '09:00' AND CONVERT(CHAR(5), creationDate , 114) < '12:00'
) t
GROUP BY t.Fecha
ORDER BY t.Fecha


Resultado:

Fecha           Cuenta
04/17/2013    113
04/18/2013    1050
04/19/2013    8278
04/20/2013    1889
04/22/2013    1936
04/23/2013    1269
04/24/2013    235



Exinten otras maneras de hacer lo mismo (p.e. utilizando DATEADD como se explica aquí) pero ésta quizás es la más simple.

No hay comentarios:

Publicar un comentario