Мисля, че просто искате да зададете часовете на 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, първо трябва да го конвертирате.