Mysql
 sql >> Baza danych >  >> RDS >> Mysql

GRUPA WEDŁUG przedziału nakładającego się znacznika czasu zapytania MySQL

Myślę, że chcesz po prostu ustawić godziny na 5, aby zachować spójność ze swoim zakresem. Jeśli tak, możesz to zrobić:

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) 

Ale myślę, że możesz chcieć wyrazić to nieco inaczej:

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)

To faktycznie wyrównuje daty na granicy 5 godzin.

Uwaga:te zapytania nie są testowane, więc mogą zawierać błędy składniowe.

To przy założeniu, że znacznik czasu jest w rzeczywistości datą i godziną. Jeśli jest to znacznik czasu UNIX, musisz go najpierw przekonwertować.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ogólna konfiguracja JDBC

  2. Laravel z problemem Dockera z połączeniem MySQL

  3. IO.FileNotFoundException w MySql.Data.dll:nie można załadować System.Security.Permissions

  4. SQL — Aktualizuj wiele rekordów w jednym zapytaniu

  5. Czy mogę zmienić kolejność wyborów SQL po zastosowaniu limitu?