Sql server 在SQL Server中按日期分组而不是按日期时间分组

Sql server 在SQL Server中按日期分组而不是按日期时间分组,sql-server,group-by,Sql Server,Group By,我正在尝试编写一个查询来计算数据库中的每个日期,如您在此处所见: SELECT [SubmitDateTime], COUNT(*) FROM [ParkingDB].[dbo].[Traffic] GROUP BY submitdatetime 结果是: 我认为SQL Server是根据日期+时间对我的日期进行分组,这是我的问题,但事实上我需要根据日期对它们进行分组。我使用这种类型的查询: SELECT [SubmitDateTime],

我正在尝试编写一个查询来计算数据库中的每个日期,如您在此处所见:

SELECT 
    [SubmitDateTime],
    COUNT(*)
FROM 
    [ParkingDB].[dbo].[Traffic] 
GROUP BY 
    submitdatetime
结果是:

我认为SQL Server是根据日期+时间对我的日期进行分组,这是我的问题,但事实上我需要根据日期对它们进行分组。我使用这种类型的查询:

SELECT 
    [SubmitDateTime],
    COUNT(*)
FROM 
    [ParkingDB].[dbo].[Traffic] 
GROUP BY
    CAST(myDateTime AS DATE)
但它不起作用。我得到了这个错误:

Msg 8120,第16级,状态1,第3行列
“ParkingDB.dbo.Traffic.SubmitDateTime”在选择列表中无效 因为它既不包含在聚合函数中,也不包含在 按子句分组


您还需要修改
SELECT
语句中的列:

SELECT
    CAST([SubmitDateTime] AS DATE),
    COUNT(*)
FROM [ParkingDB].[dbo].[Traffic]
GROUP BY
    CAST([SubmitDateTime] AS DATE)

使用
GROUP BY
子句时,
SELECT
语句中的所有非聚合列必须出现在
GROUP BY
子句中。

您能尝试下面的查询吗

SELECT 
      CAST(myDateTime AS DATE) [SubmitDateTime],
      COUNT(*)
FROM [ParkingDB].[dbo].[Traffic]
GROUP BY 
      CAST(myDateTime AS DATE)

你说它不起作用是什么意思?@FelixPamittan我得到这个错误:Msg 8120,级别16,状态1,第3行列“ParkingDB.dbo.Traffic.SubmitDateTime”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP by子句中。下面是两个有效答案。我建议您将其中一个标记为答案,以便解决此问题。谢谢,我觉得我对sqlserver有点陌生,因为我用EF编写查询。