74

activity_dtという日時があり、データは次のようになります。

2/5/2013 9:24:00 AM
2/7/2013 7:17:00 AM

日付と時間でグループ化するにはどうすればよいですか?

4

4 に答える 4

130

SQLサーバー :

SELECT [activity_dt], count(*)
FROM table1
GROUP BY DATEPART(day, [activity_dt]), DATEPART(hour, [activity_dt]);

オラクル:

SELECT [activity_dt], count(*)
FROM table1
GROUP BY TO_CHAR(activity_dt, 'DD'), TO_CHAR(activity_dt, 'hh');

MySQL:

SELECT [activity_dt], count(*)
FROM table1
GROUP BY hour( activity_dt ) , day( activity_dt )
于 2013-02-13T03:49:05.463 に答える
22

MySQLを使用して、私は通常そのようにそれを行います:

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

または、同じ考えで、日付/時間を出力する必要がある場合:

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;

日付列にインデックスを指定すると、MySQLはそれを使用して処理を少し高速化できるはずです。

于 2016-01-08T09:54:59.687 に答える
1
SELECT [activity_dt], COUNT(*) as [Count]
  FROM 
 (SELECT dateadd(hh, datediff(hh, '20010101', [activity_dt]), '20010101') as [activity_dt]
    FROM table) abc
 GROUP BY [activity_dt]
于 2013-02-13T03:45:52.683 に答える
1

私の場合...MySQLの場合:

SELECT ... GROUP BY TIMESTAMPADD(HOUR, HOUR(columName), DATE(columName))

于 2020-08-13T09:14:53.977 に答える