我已经看了一遍又一遍关于(否则)优秀的Mysql 2 gem的文档。
我有一个运行在UTC的服务器上的生产Rails应用程序。该应用的config.time_zone设置为“东部时间(美国和加拿大)”。
我们有一个内部的MS Access应用程序(谢天谢地,它使用了一个MySQL DB),上面提到的Rails应用程序可以连接到它来同步产品数据、生产计划等。由于应用程序的限制,这个MySQL服务器不能移动到云中,而且--不用说--我们不能将其时区处理更改为UTC --所有内容都是EST。
当我从Rails应用程序连接到本地数据库以检索数据时,Mysql 2(默认情况下)会将所有原生数据转换为易于理解的Ruby对象。然而,我让Rails应用程序正确解释日期的唯一方法是在Mysql 2查询命令期间发送:cast => false,然后在响应处理中,对结果运行Time.zone.parse(string)。这就需要原生的Ruby对象强制转换,这远不如gem中内置的强制转换函数有效。
我尝试传递文档中提到的database_timezone和application_timezone选项,但是:local符号没有使用应用程序的config.time_zone属性的预期效果。
thehost.query("SELECT NOW() AS n;", :symbolize_keys => true).each { |result| p result[:n] }
2015-05-19 16:28:41 +0000
thehost.query("SELECT NOW() AS n;", :symbolize_keys => true, :database_timezone => :local, :application_timezone => :local).each { |result| p result[:n] }
2015-05-19 16:30:11 +0000
thehost.query("SELECT NOW() AS n;", :symbolize_keys => true, :database_timezone => :utc, :application_timezone => :local).each { |result| p result[:n] }
2015-05-19 16:30:28 +0000
thehost.query("SELECT NOW() AS n;", :symbolize_keys => true, :database_timezone => :local, :application_timezone => :utc).each { |result| p result[:n] }
2015-05-19 16:30:57 UTC
thehost.query("SELECT NOW() AS n;", :symbolize_keys => true, :database_timezone => :utc, :application_timezone => :utc).each { |result| p result[:n] }
2015-05-19 16:31:19 UTC
字符串
1条答案
按热度按时间olmpazwi1#
晚了几年。
我阅读了Mysql 2 Gem的文档
字符串