Mysql
 sql >> база данни >  >> RDS >> Mysql

ГРУПИРАНЕ ПО интервал припокриващ се времеви печат MySQL заявка

Мисля, че просто искате да зададете часовете на 5, за да сте в съответствие с вашия диапазон. Ако е така, можете да направите това:

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) 

Но мисля, че всъщност бихте искали да изразите това малко по-различно:

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)

Това всъщност подравнява датите на 5-часовата граница.

Забележка:тези заявки не са тествани, така че може да съдържат синтактични грешки.

Това предполага, че клеймото за време наистина е дата и час. Ако това е времево клеймо на UNIX, първо трябва да го конвертирате.




  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 Резултати като списък, разделен със запетая

  2. mysql_connect не работи втори път

  3. как да изпълним mysql команда DELIMITER

  4. Mysql Regex за замяна на 0 от ipv4

  5. Свържете се с MySql db през SSH в Netbeans