当前位置: 首页 > 知识库问答 >
问题:

处理rails+postgres和时区

萧繁
2023-03-14

我有一个应用程序,它使用许多不同的时区...它在控制器中设置它们,并根据用户的不同而改变它们。所有时间都以UTC形式存储,没有时间戳等。

Events.where("EXTRACT(dow FROM start_at)", Date.today.wday)
User.events.where("EXTRACT(dow FROM start_at AT TIME ZONE ?) = ?", 'UTC', Date.today.wday)

Tzinfo有时会起作用...Postgres将与“欧洲/华沙”合作,但Rails返回“欧洲-华沙”

总的来说,我在时区方面运气不佳,任何指针都将不胜感激。

共有1个答案

伯洋
2023-03-14

也许其他人有一个更好的整体解决方案,但对于特定的查询,您需要的是

Time.zone.tzinfo.identifier

或者,在您的示例中:

User.events.where("EXTRACT(dow FROM start_at AT TIME ZONE ?) = ?", Time.zone.tzinfo.identifier, Date.today.wday)
 类似资料:
  • 我找不到Rails,让travis去工作。当测试开始运行时,仍然会出现数据库连接错误。 和 我必须使用单独的数据库配置。 知道我做错了什么吗?按照http://about.travis-ci.org/docs/user/database-setup/中的文档,除了我必须将数据库配置复制到正确的位置之外。

  • 问题内容: 因此,我正在使用CoffeeScript,Rails 3.1玩的很开心。我拥有所有常用路线索引,显示,创建,编辑,更新,销毁的资源。 索引视图的格式如下: 在创建控制器中,我具有以下内容: 我试图不使用.js.erb视图,因为我宁愿处理返回的JSON并把所有花式追加到待办事项列表上,依此类推。(对我来说更干净)。 在我的todos.js.coffee中,我使用了以下内容: (是的,只想

  • 问题内容: 当redis达到“最大内存”条件时,它将允许客户端进行读取,但不能进行写入。 当然,这将导致致命错误……有什么方法可以使Rails处理缓存的读或写错误,因此,如果缓存发生问题(可用性,读取,写入等),它将继续以如果缓存设置为“关闭”? 问题答案: 您可以告诉redis在内存已满时要遵守的不同行为。 默认是 也许最好的选择是’volatile-ttl’,并确保所有缓存都包括:expire

  • 使用DateTime 类。 在 PHP 糟糕的老时光里,我们必须使用 date(), gmdate(), date_timezone_set(), strtotime()等等令人迷惑的 组合来处理日期和时间。悲哀的是现在你仍旧会找到很多在线教程在讲述这些不易使用的老式函数。 幸运的是,我们正在讨论的 PHP 版本包含友好得多的 DateTime 类。 该类封装了老式日期函数所有功能,甚至更多,在一

  • 我在oracle DB中创建了示例表,如下所示 和从java插入的值如下所示 亚洲/加尔各答的JVM时区。我使用SQL developer查询数据。我只是想澄清我的理解 我在下面的文章中提到了,但我的观察看起来完全不同。http://brian.pontarelli.com/2011/08/16/时区数据库处理/

  • 问题内容: 我正在使用Postgres的json数据类型,但想对嵌套在json中的数据进行查询/排序。 我想订购或查询json数据类型上的.where。例如,我要查询关注者计数> 500的用户,或者要按关注者或关注计数进行订购。 谢谢! 例: 问题答案: 对于任何偶然发现的人。我想出了一个使用ActiveRecord和Postgres的JSON数据类型的查询列表。随时对其进行编辑以使其更加清晰。