Time.now => 11月10日星期四 15 :33:48 +0100 2011
Contract.where(“date_end> =?”,Time.now) => [..] WHERE(date_end> ='2011-11-10 14 :33:59')ORDER BY date_start ASC
你怎么解释arel不使用相同的时区(一小时或者差异)?
在我的申请中.rb
config.time_zone ='巴黎'
...但是无论我设置什么('UTC'等等)
谢谢!
答案 0 :(得分:0)
因为Arel不知道您的rails应用程序中的config.time_zone
设置。 Arel只关心和处理生成SQL字符串。
你的例子与Arel无关,而是与Rails无关。正如评论中所指出的,我怀疑你的数据库被设置为UTC,因此rails会将你的Time.now
转换为UTC,因为保存在数据库中的所有DateTime都存储在UTC中