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)