如何使用T-SQL查找在给定日期创建的记录总数?

时间:2009-07-30 18:39:04

标签: database tsql grouping

我需要找出在给定日期创建的记录总数。

e.g。

ID CreatedDate
1 17/07/2009
2 12/07/2009
3 17/07/2009
4 05/07/2009
5 12/07/2009
6 17/07/2009

输出:

3条记录于2009年7月17日创建 2记录于2009年7月12日创建 1记录创建于05/07/2009

修改

在测试Chris Roberts关于在SQL中包含格式的第二个建议时我得到了这个错误:

Syntax error converting the varchar value ' Records were created on ' to a column of data type int.

有谁知道如何重新设计解决方案以使其有效?

3 个答案:

答案 0 :(得分:6)

您应该能够使用以下SQL获取您所拥有的数据...

SELECT COUNT(ID), CreatedDate FROM MyTable GROUP BY CreatedDate

或者 - 如果你想在SQL中进行格式化......

SELECT CONVERT(varchar, COUNT(ID)) + ' Records were created on ' + CONVERT(varchar, CreatedDate) FROM MyTable GROUP BY CreatedDate

祝你好运!

答案 1 :(得分:1)

该列实际上是时间戳吗?在这种情况下,您需要应用一个函数来删除时间组件,例如:

SELECT COUNT(*),date(CreatedDate)FROM MyTable GROUP BY date(CreatedDate)

我不知道T-SQL中的函数是什么,它是MySQL中的date()和Oracle中的trunc()。你可能甚至不得不做一个to_string并删除字符串的结尾,如果你没有这个就删除它。

希望这有帮助。

答案 2 :(得分:-2)

select count(*), CreatedDate from table group by CreatedDate order by count(*) DESC