在 SQL Server 中的 DATETIME 列上按 MONTH 对数据进行分组

Moh*_*eth 7 sql-server group-by datetime

我有一个表Employee,其中包含列 ID、加入日期和名称

加入日期是一DATETIME栏。

我想知道十月份有多少用户加入?

Mar*_*son 7

如果您只是在寻找 10 月份而不考虑年份,那么简单的方法就是只查找COUNT该月的记录:

SELECT COUNT(*) AS NumberOfJoiners FROM Employee WHERE MONTH(DateOfJoining) = 10;
Run Code Online (Sandbox Code Playgroud)

或者

SELECT COUNT(*) AS NumberOfJoiners FROM Employee WHERE DATEPART(MONTH, DateOfJoining) = 10;
Run Code Online (Sandbox Code Playgroud)

如果你想按年份分组,那么你需要一个 group by 子句,否则 2013 年 10 月、2014 年、2015 年等只会被分组到一行中:

SELECT 
  DATEPART(YEAR, DateOfJoining) AS YearOf Joining, 
  COUNT(*) AS NumberOfJoiners 
FROM Employee
WHERE DATEPART(MONTH, DateOfJoining) = 10
GROUP BY DATEPART(YEAR, DateOfJoining);
Run Code Online (Sandbox Code Playgroud)