Como agrupar por coluna de data e hora sem levar em consideração o tempo


Respostas:


374

Transmitir / converter os valores em um Datetipo para o seu grupo por.

GROUP BY CAST(myDateTime AS DATE)

3
você sabe como eu faria o mesmo com o LINQ to SQL?
O Muffin Man

1
@ Nick - não tenho certeza. Tente usar DateTime.Date.
Oded

3
- Linq para Sql: DateTime.Date- Entity Framework:EntityFunctions.TruncateTime(myDateTime)
O homem de muffin

1
Concordo, estava respondendo ao Muffin Man, que estava perguntando sobre isso em um contexto de ORM.
Niels Brinch 02/02

4
Muito obrigado ... resolveu o meu problema. adicionado 'agrupar por CAST (date_modified AS DATE)'. não esqueça de adicionar o mesmo (CAST (date_modified AS DATE)) em select cluase.
Mohammed mansoor 12/04

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

Ou no SQL Server 2008 em diante, você pode simplesmente transmitir Date como @Oded sugerido:

GROUP BY CAST(orderDate AS DATE)



2

Aqui está um exemplo que eu usei quando precisei contar o número de registros para uma data específica sem a parte da hora:

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)

1
O POR ORDEM não trabalho vai como deveria, porque não vai tratá-lo como data para que ele irá ordenar por dia
Arma X

2

Aqui está o exemplo funciona bem no oracle

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

2

Campo de data e hora do CAST até a data

select  CAST(datetime_field as DATE), count(*) as count from table group by CAST(datetime_field as DATE);

0

Eu acredito que você precisa se agrupar, naquele dia do mês do ano. então porque não usar as funções TRUNK_DATE. A maneira como funciona é descrita abaixo:

Group By DATE_TRUNC('day' , 'occurred_at_time')

date_trunc é para o PostgreSQL, não para o SQL Server, que, seguindo as tags, o OP estava procurando uma solução para o SQL Server.
Dave Hogan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.