我有一堆产品订单,我试图按日期分组,并合计该日期的数量。我如何按月/日/年分组而不考虑时间部分?
3/8/2010 7:42:00应与3/8/2010 4:15:00归为一组
我有一堆产品订单,我试图按日期分组,并合计该日期的数量。我如何按月/日/年分组而不考虑时间部分?
3/8/2010 7:42:00应与3/8/2010 4:15:00归为一组
当前回答
GROUP BY DATE(date_time_column)
其他回答
我相信你需要在每年的那个月的那一天进行分组。 那么为什么不使用TRUNK_DATE函数呢? 它的工作原理如下:
Group By DATE_TRUNC('day' , 'occurred_at_time')
GROUP BY DATEADD(day, DATEDIFF(day, 0, MyDateTimeColumn), 0)
或者在SQL Server 2008以后,你可以像@Oded建议的那样简单地转换为Date:
GROUP BY CAST(orderDate AS DATE)
好吧,对我来说,它几乎是直接的,我使用cast和groupby:
例子:
Select cast(created_at as date), count(1) from dbname.tablename GROUP BY cast(created_at as date)
注意:我在MSSQL 2016上使用这个。
CAST datetime字段到日期
select CAST(datetime_field as DATE), count(*) as count from table group by CAST(datetime_field as DATE);
下面是我使用的一个例子,当我需要计算特定日期的记录数量而不包括时间部分时:
select count(convert(CHAR(10), dtcreatedate, 103) ),convert(char(10), dtcreatedate, 103)
FROM dbo.tbltobecounted
GROUP BY CONVERT(CHAR(10),dtcreatedate,103)
ORDER BY CONVERT(CHAR(10),dtcreatedate,103)