Saya pikir Anda hanya ingin mengatur jam ke 5, agar konsisten dengan jangkauan Anda. Jika demikian, Anda dapat melakukan ini:
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)
Tapi, saya rasa Anda mungkin ingin mengungkapkannya sedikit berbeda:
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)
Ini sebenarnya menyetel ulang tanggal pada batas 5 jam.
Catatan:kueri ini belum diuji, jadi mungkin mengandung kesalahan sintaks.
Ini dengan asumsi bahwa cap waktu benar-benar sebuah datetime. Jika ini adalah stempel waktu UNIX, Anda harus mengonversinya terlebih dahulu.