我有一个表,其中有一列日期时间类型
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
并且记录将按天分组。我的意思是在一天内添加的所有记录都将在同一个组中。
我有一个表,其中有一列日期时间类型
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
并且记录将按天分组。我的意思是在一天内添加的所有记录都将在同一个组中。
select * from mytable
group by CONVERT(date, dateadded)
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
,或者其中包含其他表达式的聚合。