Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL:Catatan dimasukkan berdasarkan jam, selama 24 jam terakhir

Jika Anda mengelompokkan berdasarkan HOUR(time) maka Anda harus menggunakan HOUR(time) dalam ekspresi pilihan Anda, dan bukan time . Misalnya:

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

Atau Anda dapat mengelompokkan menurut ekspresi yang ingin Anda kembalikan:

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 )

Jika Anda bertanya-tanya, aman untuk memanggil NOW() beberapa kali dalam kueri yang sama seperti ini. Dari manual :




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa perbedaan kinerja dalam implementasi divisi relasional MySQL (IN AND alih-alih IN OR)?

  2. Menggunakan kata kunci MySQL dalam kueri?

  3. Cara Mengakses PhpMyAdmin tanpa login cPanel

  4. Cara memilih tanggal terlama dari MySQL

  5. MySql:MyISAM vs. Inno DB!