2016-04-28 16 views
1

MySQLテーブルからタイムラインを表示する必要があります。基本的に1時間ごとのレコード数を取得します。私TimeSigned列には、私は次のクエリを使用しています日付スタンプMySQLは時間間隔でレコードを取得します

ログイン

Id TimeSigned   MarkedBy 
1. 2016-03-14 05:12:17 James 
2. 2016-03-14 05:30:10 Mark 
3. 2016-03-14 06:10:00 James 
4. 2016-03-14 07:30:10 Mary 

ですが、それは間違った結果をもたらします。

SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) > 5 AND HOUR(TimeSigned) < 6 

私は(5-6時間の範囲内であり、すなわち1と2のレコード)2の数を返すためにそれを期待していたが、それは戻って、私はここにsqlfiddle SQL Fiddleを作成している0

ます

答えて

1

最初の状態で=を使用してください。 5から6の間に何もないので、カウントを与える0

SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) >= 5 AND HOUR(TimeSigned) < 6 
1

HOUR()は時の部分を返すので整数になります。私はあなただけの時間を見てみたいと思います あり5より大きい一切全体の数字がないと6未満 は5

SELECT COUNT(Id) From Logins WHERE HOUR(TimeSigned) = 5 

に等しく、またはあなたが望むなら、あなたはすることにより、各時間のカウントを返すことができます行うこと

SELECT COUNT(Id) as Count,HOUR(TimeSigned) as Hour From Logins GROUP BY HOUR(TimeSigned) 
関連する問題