dar*_*iol 6 architecture sql-server nhibernate timezone group-by
我被卡住了.需要帮忙.
我将UTC日期存储在数据库中.
示例行:
GeneratedAt:
我的用户当地时间是-2小时(中欧).当我想要从09开始的行时,我有3行.
问题在于GROUP BY日用于报告目的.我有08的1和09的2,但我当地时间不是这样.
我看到的任何地方:"以UTC格式存储数据".怎么做得好?
更新1:
对于数据访问我正在使用NHibernate,我更喜欢独立于数据库引擎的解决方案.所以,我正在寻找类似日期/时间维度表(或类似的东西)的解决方案.
我的数据表包含如下列:
多亏了我可以轻松分组:年,年+月,年+月+日,年+月+日+小时.不幸的是这是UTC.:(
如何重构此解决方案以处理用户时区?
您可以创建该表的视图,通过应用 DATEADD 函数提供所需中欧时区的日期时间值。
因此,如果您的表列是:id, other_id, evt_time
那么 select 语句(用于视图定义)将是:
SELECT id, other_id, evt_time, DATEADD( hh, -2, evt_time ) AS evt_time_ce
FROM MyTable
Run Code Online (Sandbox Code Playgroud)
然后您可以使用该视图并将其应用于GROUP_BY该evt_time_ce列