J'ai plusieurs commandes de produits et j'essaie de regrouper par date et de faire la somme des quantités pour cette date. Comment puis-je grouper par mois/jour/année sans prendre en compte la partie heure?
3/8/2010 7:42:00
devrait être groupé avec 3/8/2010 4:15:00
Cast/Convert les valeurs à un Date
tapez pour votre groupe par.
GROUP BY CAST(myDateTime AS DATE)
GROUP BY DATEADD(day, DATEDIFF(day, 0, MyDateTimeColumn), 0)
Ou dans SQL Server 2008, vous pouvez simplement transtyper en Date
comme suggéré par @Oded:
GROUP BY CAST(orderDate AS DATE)
En pré SQL 2008 En retirant la partie date:
GROUP BY CONVERT(CHAR(8),DateTimeColumn,10)
GROUP BY DATE(date_time_column)
Voici un exemple que j'ai utilisé lorsque j'avais besoin de compter le nombre d'enregistrements pour une date donnée sans la partie heure:
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)
Voici l'exemple qui fonctionne très bien dans Oracle
select to_char(columnname, 'DD/MON/yyyy'), count(*) from table_name group by to_char(createddate, 'DD/MON/yyyy');