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.