我的表格中有一个类型为日期时间
的列select * from mytable group by dateadded
但我希望我的group by忽略日期时间的时间值并仅使用日期部分。然后
2013-10-05 12:14:15
2013-10-05 19:15:20
两者都与
相同 2013-10-05 00:00:00
并且记录将按天分组。我的意思是所有在一天内添加的记录都在同一组中。
答案 0 :(得分:2)
select * from mytable
group by CONVERT(date, dateadded)
答案 1 :(得分:0)
juergen的答案适用于SQL Server 2008及更高版本。对于SQL Server 2005及更低版本,请使用:
select * from mytable
group by DATEDIFF(d, dateadded, '1900-01-01')
或稍微hackish但功能完善:
select * from mytable
group by convert(int, dateadded)
这些示例显然 none 实际上有效,因为select *
与group by
不兼容。 select
列表只需要group by
中的表达式或其他表达式的聚合。