gpt4 book ai didi

MySQL、Rails ActiveRecord 日期分组和时区

转载 作者:可可西里 更新时间:2023-11-01 07:58:49 24 4
gpt4 key购买 nike

我想按创建日期统计用户数。当我查询我的最后一个用户时,我有:

 > User.last.created_at
=> Thu, 07 Aug 2014 21:37:55 BRT -03:00

当我计算每个日期的用户数时,我得到了这个:

> User.group("date(created_at)").count
=> {Fri, 08 Aug 2014=>1}

创建日期是 8 月 7 日,但结果是 8 月 8 日。发生这种情况是因为组条件是 UTC,而我的时区是“巴西利亚”。我的 application.rb 中有这个:

config.time_zone = 'Brasilia'
config.active_record.default_timezone = :local

如何解决?

最佳答案

首先尝试 convert_tz:

User.group("date(convert_tz(created_at,'UTC','[your_time_zone]'))").count

如果 convert_tz 返回 null,也许您需要使用此命令行加载时区表:

$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

引用mysql convert_tz .

编辑 1:

如果您使用 Rackspace MySQL,则需要启用对数据库的 root 访问权限并以 root 身份运行时区查询。 Here you can find有关如何使用 rackspace API 安装 trove 和启用 root 访问权限的说明。

关于MySQL、Rails ActiveRecord 日期分组和时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25195591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com