302 votes

Comment puis-je grouper par colonne de date et d'heure sans tenir compte de l'heure ?

J'ai plusieurs commandes de produits et j'essaie de les regrouper par date et d'additionner la quantité pour cette date. Comment puis-je grouper par mois/jour/année sans tenir compte de la partie temps ?

3/8/2010 7:42:00 devraient être regroupés avec 3/8/2010 4:15:00

508voto

Oded Points 271275

Cast/Convert les valeurs à un Date type pour votre groupe par.

GROUP BY CAST(myDateTime AS DATE)

32voto

Mitch Wheat Points 169614
GROUP BY DATEADD(day, DATEDIFF(day, 0, MyDateTimeColumn), 0)

Ou dans SQL Server 2008 vous pourriez simplement faire un casting vers Date comme @Oded l'a suggéré :

GROUP BY CAST(orderDate AS DATE)

17voto

Kamyar Points 11012

En pré Sql 2008 en enlevant la partie date :

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

2voto

user3169774 Points 1

Voici un exemple que j'ai utilisé lorsque j'ai eu besoin de compter le nombre d'enregistrements pour une date particulière sans la partie temps :

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)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X