mysql – 在更长的时间段和时区存储统计信息

前端之家收集整理的这篇文章主要介绍了mysql – 在更长的时间段和时区存储统计信息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

目前,我正在开发一个项目,该项目计算数据并将其按ID存储在分析数据库中.

例如,阅读新闻文章次数(因此有20个类别的数据存储为整数).

我们将数据存储在以下字段中:
int user_id
int value_type_id
int值
日期时间日期时间

我们使用4个表,x_hour,x_day,x_week,x_month
这样,我们就不必计算潜在的数千甚至数百万条记录的数据.

需要动态计算数据并通过某些连接进行过滤.
这一切都没有问题,并且按照预期并以令人满意的速度工作.

接下来的问题.我们希望数据显示在查看它的用户的时区中,时区并不总是相同的,因为它可以是反对的,例如UTC-5或UTC 4.

由于我们将日期存储在UTC上,因此如果在午夜前一小时存储活动,则较大的间隔会将其视为昨天,即使它可能在该时区的同一天,因此我们在几天,几周和几个月的时间间隔存在问题.

我已经阅读了解决方案,添加24列来保存每个时区的数据,是否有人有不同的解决方案.

最佳答案
继续以UTC格式存储日期时间.

用户的时区传递给查询.

使用CONVERT_TZ函数在SELECT中转换:

CONVERT_TZ(`datetimefield`,'UTC','Europe/Amsterdam')

‘欧洲/阿姆斯特丹’被适当的时区所取代.

只要您拥有此数据,您最好使用上述IANA时区字符串,而不是像“UTC-5”那样的偏移量.它将正确处理发生这种情况的地区的夏令时问题.

附加说明:https://dev.mysql.com/doc/refman/5.5/en/mysql-tzinfo-to-sql.html
– 该程序用于使用时区数据初始化MysqL.

原文链接:https://www.f2er.com/mysql/433139.html

猜你在找的MySQL相关文章