Select min(date), max(date) and group by day from one column - SQL

m0rte0 picture m0rte0 · Oct 8, 2014 · Viewed 65.5k times · Source

I'm going nuts soon please help.

I have one column containing datetime values.

I need to find min and max for every day.

The data looks like this

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  

This is what tried so far

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

but when I

Group by

I group on all 3 columns...

I seems not to work to set my first select as ColName and Group on this

This is what I want

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  

Answer

crthompson picture crthompson · Oct 8, 2014

Convert the column in the GROUP BY as well.

select
  min(datum), max(datum), CONVERT(varchar(8), datum, 112)
from
  dateTable
group by 
  CONVERT(varchar(8), datum, 112)

Here is a fiddle

Here are the list of convert values for dates. (I've chosen 112 for you in this case above)