这是设置:
end_date = DateTime.parse('2010-01-01 12:00:00-04')
有时它被初始化:
end_date = 1.days.ago
问题......这些named_scope(s)是否生成相同的EXACT SQL?
named_scope :before, lambda { |end_date|
{ :conditions =>
["overdraft_transaction_payments.created_at < ?", end_date] }
}
和
named_scope :before, lambda { |end_date|
{ :conditions =>
["overdraft_transaction_payments.created_at < ?", end_date.utc] }
}
在第一个示例中,我使用 end_date,在第二个示例中,我使用 end_date.utc。
(可能需要注意...... DB服务器的操作系统设置为CDT,而DB内部使用UTC。rails服务器的操作系统设置为CDT,应用程序实例设置为EDT。我意识到这可能是不是配置这些系统的最佳方式,但是,当前的问题是 ActiveRecord 输出。)
值得我的直觉是,第一个示例将为本地 TZ 生成一个时间字符串,而第二个示例将生成一个 UTC-0。
PS:有没有可以用来验证我的直觉的小测试用例?