tutorial transact for examples español ejemplos sql sql-server tsql sql-server-2008

for - transact sql tutorial



¿Cómo puedo agrupar por columna de fecha y hora sin tener en cuenta el tiempo? (5)

Tengo un montón de órdenes de productos y estoy tratando de agrupar por fecha y sumar la cantidad para esa fecha. ¿Cómo puedo agrupar por mes / día / año sin tener en cuenta la parte del tiempo?

3/8/2010 7:42:00 debe agrupar con 3/8/2010 4:15:00


Aquí está el ejemplo que funciona bien en el oráculo

select to_char(columnname, ''DD/MON/yyyy''), count(*) from table_name group by to_char(createddate, ''DD/MON/yyyy'');


Aquí hay un ejemplo que utilicé cuando necesité contar la cantidad de registros para una fecha en particular sin la porción de tiempo:

select count(convert(CHAR(10), dtcreatedate, 103) ),convert(char(10), dtcreatedate, 103) FROM dbo.tbltobecounted GROUP BY CONVERT(CHAR(10),dtcreatedate,103) ORDER BY CONVERT(CHAR(10),dtcreatedate,103)


En pre Sql 2008 Al sacar la parte de la fecha:

GROUP BY CONVERT(CHAR(8),DateTimeColumn,10)


Cast/Convert los valores a un tipo de Date para su grupo por.

GROUP BY CAST(myDateTime AS DATE)


GROUP BY DATEADD(day, DATEDIFF(day, 0, MyDateTimeColumn), 0)

O bien, en SQL Server 2008 en adelante, simplemente puede enviar a la Date como @Oded sugerido:

GROUP BY CAST(orderDate AS DATE)