如何使用带有MySQL和Sqlite3的时区的准确时间?

时间:2011-04-04 04:50:11

标签: mysql ruby-on-rails sqlite

如何在MySQL和Sqlite3中完成?

select * from foos where created_time > "2011-04-03 18:01:02 UTC"

关键是时区需要在那里。

那是因为使用Ruby on Rails(3.0.5),如果配置文件中有Time.zone = "...",那么

foo = Foo.all(:condition => "created_at > '#{bar.created_at.strftime('%Y-%m-%d')}'")

然后strftime将在该特殊时区给出2011-04-04的日期,而MySQL或Sqlite将使用可能是本地时区的日期,因此有时会出现差异。

1 个答案:

答案 0 :(得分:2)

这不是自我解释,但我发现如果你在config文件夹中的application.rb中设置这些参数,时间戳只显示正确的值。

config.time_zone = 'Your closest timezone related city'
config.active_record.default_timezone = :local