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

GROUP BY interval stempel waktu yang tumpang tindih permintaan MySQL

Saya pikir Anda hanya ingin mengatur jam ke 5, agar konsisten dengan jangkauan Anda. Jika demikian, Anda dapat melakukan ini:

SELECT cast(date(stamp) as datetime) + interval 5 hour
       Sum(value) 
FROM   table 
WHERE  stamp >= Date_sub('2012-12-02 05:00:00', INTERVAL 1 day) 
       AND stamp < '2013-01-01 05:00:00' 
GROUP  BY Date(stamp) 

Tapi, saya rasa Anda mungkin ingin mengungkapkannya sedikit berbeda:

SELECT cast(date(stamp - interval 5 hour) as datetime) + interval 5 hour
       Sum(value) 
FROM   table 
WHERE  stamp >= Date_sub('2012-12-02 05:00:00', INTERVAL 1 day) 
       AND stamp < '2013-01-01 05:00:00' 
GROUP  BY Date(stamp - interval 5 hour)

Ini sebenarnya menyetel ulang tanggal pada batas 5 jam.

Catatan:kueri ini belum diuji, jadi mungkin mengandung kesalahan sintaks.

Ini dengan asumsi bahwa cap waktu benar-benar sebuah datetime. Jika ini adalah stempel waktu UNIX, Anda harus mengonversinya terlebih dahulu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql - Bagaimana cara membandingkan dua objek Json?

  2. Bagaimana cara mendapatkan nama guru kursus?

  3. Masalah kinerja menjalankan database dalam wadah buruh pelabuhan

  4. panduan sebagai kunci utama?

  5. Cara menggabungkan dua tabel menggunakan daftar yang dipisahkan koma di bidang gabungan