1

MySQL テーブル内の特定の行をカウントする最も効率的な方法を考えようとしています。

私のテーブルには というdatetime列が含まれておりdate_time、それぞれの間に少なくとも 30 分ある行の数を数えたいと考えていますdate_time

たとえば、次の表があるとします。

id    date_time
1     2013-08-23 00:30:00    
2     2013-08-23 00:45:00    
3     2013-08-23 01:01:00    
4     2013-08-23 02:30:00    
5     2013-08-23 02:45:00

最後のエントリから少なくとも 30 分経過している場合にのみエントリを含めたい場合、カウントには ID #1 と ID #4 が含まれるため、カウントは 2 になります。

これを行うためのクリーンなスクリプトを考え出そうとしていますが、これを達成するのに役立つ特別な種類のクエリはありますか?

4

3 に答える 3

2

そのための非常に簡単な解決策は、DATE_FORMATMySQL 関数を使用することです。

http://sqlfiddle.com/#!2/3b793/4

クエリ

SELECT
  DATE_FORMAT(`datef`, '%i') AS `Fields`,
  `datef`
FROM `dates`
WHERE DATE_FORMAT(`datef`, '%i') = 30
于 2013-08-24T04:49:59.740 に答える