範囲と一致させるために、時間を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タイムスタンプの場合は、最初に変換する必要があります。