Rails 4忽略UTC到MySQL数据库的转换

Rails 4忽略UTC到MySQL数据库的转换,mysql,ruby-on-rails,time,utc,Mysql,Ruby On Rails,Time,Utc,我有一个Rails 4应用程序,根据最佳实践,它在我的MySQL数据库中以UTC格式存储日期。这没关系 然而,我有一个场景不能正常工作 我有一个事件管理器,它总是在运行,寻找要运行的新事件(存储在数据库中)。这些事件根据用户在站点上的操作存储在数据库中。DB中的事件表有一个执行日期字段,用于存储事件计划执行日期。据此,当用户执行创建事件的操作时,事件执行日期将转换为UTC 在Rails中,我使用Time.now-->2014-10-04T01:02:10-07:00(距离UTC 7小时)。以DB

我有一个Rails 4应用程序,根据最佳实践,它在我的MySQL数据库中以UTC格式存储日期。这没关系

然而,我有一个场景不能正常工作

我有一个事件管理器,它总是在运行,寻找要运行的新事件(存储在数据库中)。这些事件根据用户在站点上的操作存储在数据库中。DB中的事件表有一个执行日期字段,用于存储事件计划执行日期。据此,当用户执行创建事件的操作时,事件执行日期将转换为UTC

在Rails中,我使用
Time.now-->2014-10-04T01:02:10-07:00
(距离UTC 7小时)。以DB为单位,这次转换为UTC,因此我看到
2014-10-04 08:02:10
。我认为这也是正确的

但问题是事件管理器正在运行下一个查询以获取待执行的事件:

SELECT e.*
                               FROM events e, event_states es
                               WHERE e.execution_date <= NOW()
                               AND es.name = 'Pending'
                               AND es.id = e.event_state_id
选择e*
从事件e中,事件_表示事件

其中e.execution_date根据上面的@mccannf评论,我没有将数据库更新为UTC时间,但我将查询替换为

SELECT e.*
                               FROM events e, event_states es
                               WHERE e.execution_date <= UTC_TIMESTAMP()
                               AND es.name = 'Pending'
                               AND es.id = e.event_state_id
选择e*
从事件e中,事件_表示事件

您可以在哪里配置数据库?谢谢mccannf。最后,我将查询中的NOW()函数替换为UTC_TIMESTAMP(),其效果与您的建议相同。