sql >> データベース >  >> RDS >> Mysql

MySQL:過去24時間の時間単位で挿入されたレコード

    HOUR(time)でグループ化した場合 次に、 HOUR(time)を使用する必要があります time ではなく、選択した式で 。例:

    SELECT HOUR(time), COUNT(*)
    FROM `records`
    WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
    GROUP BY HOUR(time)
    ORDER BY HOUR(time)
    

    または、返したい式でグループ化することもできます:

    SELECT COUNT(*), FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
    FROM `records`
    WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
    GROUP BY FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
    ORDER BY FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
    

    ご参考までに、<​​code> NOW()を呼び出しても安全です。 このような同じクエリで複数回。 マニュアル から :




    1. テーブルが空の場合はINSERTを実行しますか?

    2. JdbcDirectoryを使用してデータベースにLuceneインデックスを作成する

    3. 前月または前年度の欠落データを累積的に追加する

    4. 最新バージョンのMariaDBサーバーを使用した最新のJiraへのアップグレード