我正在使用生成的 DBIx::Class 模式dbcidump
来进行插入和查询。
最近,我发现我所有的时间都比我们的当地时间(EST)提前了 5 小时。
在我的Result
课堂上,我有__PACKAGE__->load_components("InflateColumn::DateTime")
,其中列定义为"action_time", { data_type => "datetime", is_nullable => 0}
...
有没有一种简单的方法可以让我控制时区DateTime
对象被膨胀/放气,以便我的查询和插入保持一致?
我已经尝试添加time_zone => 'local'
到列定义中,但这没有什么区别。
例如:
- 插入2012-12-12 10:04:03
- 检索2012-12-12 15:04:03
样本数据:
sqlite> select datetime(action_time,'localtime'),action_time from actions order by id desc limit 3;
2012-12-12 08:35:07|2012-12-12 13:35:07
2012-12-12 08:34:45|2012-12-12 13:34:45
2012-12-12 08:34:43|2012-12-12 13:34:43
编辑:我相信这与我的使用有关: http ://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/ResultClass/HashRefInflator.pm ;来自文档:
不执行列值膨胀,例如,使用像 DBIx::Class::InflateColumn::DateTime 这样的模块。返回的哈希包含原始数据库值。
因此,我想知道如何让该类为日期时间字段做一些特别的事情。