1

UPDATE
私はこのクエリを見つけました:
SELECT CONCAT(DATE(gid), ' / ', HOUR(gdate), ':00:00 to ', CONCAT(HOUR(gdate), ':59:59')) as slice, COUNT (*) FROM t_table GROUP BY DATE(gdate), HOUR(gdate);

8 時間または 1 日データがない場合は ZERO を出力しません。方法はありますか?


私は3つのフィールドを持つテーブルを持っています:

  • gid (整数)
  • gdate (日時)
  • ginfo (テキスト)

2 つの日付の間、毎日 8 時間ごとにアイテム数 (フィールド ginfo) を出力する正しいクエリを見つけたいと考えています。明確かどうかわからないので、図式化してみることができます:

最初の日付は : 2013/10/01 です。
2 番目の日付は : 2013/10/03 です。
初日の PHP 出力は次のよう
になります
。 2 日目のPHP出力は、たとえば次のようになります。






テーブルには、2013/10/01 の 20 項目があります。この表には、2013/10/02 の 6 つの項目があります。

正しいクエリが見つかりません。
誰でも私を助けることができますか?
下手な英語ですみません。

4

3 に答える 3

0

このようにしてみてください。

SELECT COUNT(ginfo) 
FROM 'TABLE_NAME'
WHERE gdate BETWEEN 'from_date' AND 'to_date' 
GROUP BY (date(gdate) + INTERVAL 8 HOUR)
于 2013-10-21T04:08:37.493 に答える
0

次のように使用できます:

SELECT COUNT(gid) FROM [table_name] WHERE (gdate>=2013/10/01 00:00) and (gdate<=2013/10/01 07:00)
UNION ALL 
SELECT COUNT(gid) FROM [table_name] WHERE (gdate>=2013/10/07 00:00) and (gdate<=2013/10/01 16:00)
UNION ALL
... bla bla with your conditions

フォーマットの日付が正しくないと思います。フォーマットの日付を探すことができます。

于 2013-10-21T04:06:27.980 に答える