0

我有一个表,其中有一列日期时间类型

select * from mytable group by dateadded

但我希望我的 group by 忽略 datetime 的时间值并仅使用日期部分。然后

2013-10-05 12:14:15
2013-10-05 19:15:20

两者都与

 2013-10-05 00:00:00 

并且记录将按天分组。我的意思是在一天内添加的所有记录都将在同一个组中。

4

2 回答 2

2
select * from mytable 
group by CONVERT(date, dateadded)
于 2013-10-05T09:20:05.677 回答
0

juergen 的答案适用于 SQL Server 2008 及更高版本。对于 SQL Server 2005 及更低版本,请使用:

select * from mytable
group by DATEDIFF(d, dateadded, '1900-01-01')

或者有点骇人听闻但功能完善的:

select * from mytable
group by convert(int, dateadded)

显然,这些示例都没有真正起作用,因为select *group by. 该select列表只需要包含来自 的表达式group by,或者其中包含其他表达式的聚合。

于 2013-10-05T21:33:28.020 回答