直到今天我才使用过 DBIx::Class,所以我对它完全陌生。
我不确定这是否可能,但基本上我的 SQLite 数据库中有一个表,其中有一个时间戳列。时间戳列的默认值为“CURRENT_TIMESTAMP”。 SQLite 将其存储在 GMT 时区,但我的服务器位于 CDT 时区。
我的 SQLite 查询获取正确时区的时间戳是这样的:
select datetime(timestamp, 'localtime') from mytable where id=1;
我想知道在“MyTable”的 DBIx 模式中是否可以强制它在每次从数据库检索“时间戳”字段时应用日期时间函数?
In the cookbook http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class/Manual/Cookbook.pod#Using_database_functions_or_stored_procedures看起来使用 ->search() 函数时可以做到这一点,但我想知道如果我使用 search()、find()、all()、find_or_new() 是否可以做到这一点,或者任何将从数据库中提取该列的函数,它都会对其应用 datetime() SQLite 函数吗?
DBIx::Class 似乎有很棒的文档 - 我想我对它太陌生了,我找不到合适的地方/东西来搜索。
提前致谢!
我已经以这种方式使用了 InflateColumn::DateTime 并带有时间戳,我可以确认它的工作原理,但我想知道你是否有这种落后。
如果您的列采用 UTC 格式,请标记该列 UTC,然后加载它时它应该是 UTC 时间。然后,当您在 DateTime 上 set_timezone (大概这将是一个输出问题 - 在输出中您关心它是本地分区的)时,您可以将其设置为本地时间,它将进行必要的调整。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)