Я застрял. Нужна помощь.
Я храню даты UTC в базе данных.
Пример строки:
GeneratedAt:
- 2011-06-08 23: 30
- 2011-06-09 03: 30
- 2011-06-09 15: 30
Местное время для моего пользователя -2 часа (Центральная Европа). Когда я хочу строки с 09, тогда у меня есть 3 строки.
Проблема связана с днем GROUP BY для целей отчетности. У меня есть 1 для 08 и 2 для 09, но это не верно для моего местного времени.
Везде, где я вижу: «хранить данные в UTC». Как это сделать правильно?
ОБНОВЛЕНИЕ 1:
Для доступа к данным я использую NHibernate и предпочитаю решение, не зависящее от ядра базы данных. Итак, я ищу решение с чем-то вроде таблицы измерения даты / времени (или чего-то подобного).
В моей таблице данных есть такие столбцы:
- GeneratedAt (datetime)
- GeneratedAt_Year (int)
- GeneratedAt_Month (int)
- GeneratedAt_Day (int)
- GeneratedAt_Hour (int)
Благодаря этому я могу легко группировать по: год, год + месяц, год + месяц + день, год + месяц + день + час. К сожалению, это UTC. :(
Как реорганизовать это решение для работы с часовыми поясами пользователя?