によって生成された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-1210:04:03
- 2012-12-1215: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などのモジュールを使用した場合、列値のインフレーションは実行されません。返されるハッシュには、生のデータベース値が含まれています。
したがって、そのクラスに日時フィールドに対して特別なことを実行させる方法を考えています。