sql >> Database teknologi >  >> RDS >> Mysql

GROUP BY interval overlappende tidsstempel MySQL-forespørgsel

Jeg tror, ​​du bare vil indstille timerne til 5, for at være i overensstemmelse med dit interval. Hvis ja, kan du gøre dette:

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) 

Men jeg tror, ​​at du måske vil formulere dette lidt anderledes:

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)

Dette justerer faktisk datoerne på 5-timers grænsen.

Bemærk:disse forespørgsler er utestede, så de kan indeholde syntaksfejl.

Dette forudsætter, at tidsstemplet virkelig er et datotidspunkt. Hvis det er et UNIX-tidsstempel, skal du først konvertere det.




  1. PHP udefineret variabel mysqli-forbindelse

  2. Hvordan indsætter man kinesisk tegn i mysql-tabel?

  3. Sådan bruger du Sum, Avg og Count i Select Statement - SQL Server / TSQL Tutorial Del 128

  4. Sikkerhedsregler for arv overtrådt efter type:'MySql.Data.Entity.MySqlEFConfiguration'