我很快就会疯了,请帮忙。
我有一列包含datetime
值。
我需要每天都找到最小值和最大值。
数据看起来像这样
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
这是迄今为止尝试的内容
select distinct(convert(nvarchar, datum, 112)), min(datum), max(datum)
from myTable
但是当我
Group by
我对所有3列进行分组......
我似乎无法将我的第一个选择设置为此
上的ColName和Group这就是我想要的
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
答案 0 :(得分:10)
select
min(datum), max(datum), CONVERT(varchar(8), datum, 112)
from
dateTable
group by CONVERT(varchar(8), datum, 112)
这是fiddle
答案 1 :(得分:2)
在SQL Server 2008+中,您可以使用date
数据类型而不是转换为字符串:
select cast(datum as date), min(datum), max(datum)
from myTable
group by cast(datum as date);