web-dev-qa-db-fra.com

Sélectionnez min (date), max (date) et groupe par jour dans une colonne - SQL

Je vais bientôt devenir fou, aidez-moi.

J'ai une colonne contenant des valeurs datetime.

J'ai besoin de trouver min et max pour chaque jour.

Les données ressemblent à ceci

2012-11-23 05:49:26.000  
2012-11-23 07:55:43.000  
2012-11-23 13:59:56.000  
2012-11-26 07:51:13.000  
2012-11-26 10:23:31.000  
2012-11-26 10:25:09.000  
2012-11-26 16:22:22.000  
2012-11-27 07:30:03.000  
2012-11-27 08:53:47.000  
2012-11-27 10:40:55.000  

C'est ce qui a essayé jusqu'à présent 

select distinct(convert(nvarchar, datum, 112)), min(datum), max(datum) 
from myTable

mais quand je 

Group by

Je groupe sur les 3 colonnes ...

Je semble ne pas travailler pour définir ma première sélection en tant que ColName et Group sur cette

C'est ce que je veux

20121123 | 2012-11-23 05:49:26.000 | 2012-11-23 13:59:56.000  
20121126 | 2012-11-26 07:51:13.000 | 2012-11-26 16:22:22.000  
20121127 | 2012-11-27 07:30:03.000 | 2012-11-27 10:40:55.000  
7
m0rte0
select
  min(datum), max(datum), CONVERT(varchar(8), datum, 112)
from
  dateTable
group by CONVERT(varchar(8), datum, 112)

Voici un violon

10
paqogomez

Dans SQL Server 2008+, vous pouvez utiliser le type de données date au lieu de convertir en chaîne de caractères:

select cast(datum as date), min(datum), max(datum) 
from myTable
group by cast(datum as date);
2
Gordon Linoff