DateTime按日期和小时分组

Yeo*_*Yeo 43 mysql sql

我有一个名为activity_dt的日期时间,数据如下所示:

2/5/2013 9:24:00 AM
2/7/2013 7:17:00 AM
Run Code Online (Sandbox Code Playgroud)

我如何按日期和小时分组?

Isw*_*San 80

SQL Server:

SELECT [activity_dt], count(*)
FROM table1
GROUP BY DATEPART(day, [activity_dt]), DATEPART(hour, [activity_dt]);
Run Code Online (Sandbox Code Playgroud)

甲骨文:

SELECT [activity_dt], count(*)
FROM table1
GROUP BY TO_CHAR(activity_dt, 'DD'), TO_CHAR(activity_dt, 'hh');
Run Code Online (Sandbox Code Playgroud)

MySQL:

SELECT [activity_dt], count(*)
FROM table1
GROUP BY hour( activity_dt ) , day( activity_dt )
Run Code Online (Sandbox Code Playgroud)

  • 在 ms sql 中不起作用:列“Invoices.Date”在选择列表中无效,因为它既不包含在聚合函数中也不包含在 GROUP BY 子句中。 (3认同)

Sim*_*mon 12

使用MySQL我通常这样做:

SELECT count( id ), ...
FROM quote_data
GROUP BY date_format( your_date_column, '%Y%m%d%H' )
order by your_date_column desc;
Run Code Online (Sandbox Code Playgroud)

或者在同一个想法中,如果您需要输出日期/小时:

SELECT count( id ) , date_format( your_date_column, '%Y-%m-%d %H' ) as my_date
FROM  your_table 
GROUP BY my_date
order by your_date_column desc;
Run Code Online (Sandbox Code Playgroud)

如果在日期列上指定索引,MySQL应该能够使用它来加速一些事情.