Ik denk dat je de uren gewoon op 5 wilt zetten, om consistent te zijn met je bereik. Zo ja, dan kunt u dit doen:
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)
Maar ik denk dat je dit misschien iets anders wilt formuleren:
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)
Hierdoor worden de datums op de grens van 5 uur opnieuw uitgelijnd.
Opmerking:deze zoekopdrachten zijn niet getest en kunnen daarom syntaxisfouten bevatten.
Dit veronderstelt dat de tijdstempel echt een datetime is. Als het een UNIX-tijdstempel is, moet u deze eerst converteren.