Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl DBIx::Class能否覆盖从数据库检索列的方式?_Perl_Sqlite_Dbix Class - Fatal编程技术网

Perl DBIx::Class能否覆盖从数据库检索列的方式?

Perl DBIx::Class能否覆盖从数据库检索列的方式?,perl,sqlite,dbix-class,Perl,Sqlite,Dbix Class,直到今天我才使用过DBIx::Class,所以我对它完全陌生 我不确定这是否可行,但基本上我的SQLite数据库中有一个表,其中有一个timestamp列。timestamp列的默认值为“CURRENT_timestamp”。SQLite将其存储在GMT时区,但我的服务器位于CDT时区 我的SQLite查询用于获取正确时区中的时间戳,如下所示: select datetime(timestamp, 'localtime') from mytable where id=1; 我想知道,在我的DB

直到今天我才使用过DBIx::Class,所以我对它完全陌生

我不确定这是否可行,但基本上我的SQLite数据库中有一个表,其中有一个timestamp列。timestamp列的默认值为“CURRENT_timestamp”。SQLite将其存储在GMT时区,但我的服务器位于CDT时区

我的SQLite查询用于获取正确时区中的时间戳,如下所示:

select datetime(timestamp, 'localtime') from mytable where id=1;
我想知道,在我的DBIx模式中,“MyTable”是否有可能在每次从数据库检索“timestamp”字段时强制它应用datetime函数

在中,当使用->search()函数时,似乎可以这样做,但我想知道如果我使用search()、find()、all()、find_或_new()或任何将从数据库中提取此列的函数,是否可以这样做,它将对其应用datetime()SQLite函数

类似乎有很好的文档-我想我只是太新了,没有找到合适的地方/东西来搜索


提前谢谢

我以这种方式使用了InflateColumn::DateTime,并带有时间戳,我可以确认它是有效的,但我想知道您是否有反向使用


如果您的列是UTC格式,请标记该列UTC,然后在加载该列时,它应该是UTC时间。然后,当您在DateTime上设置_时区时(这可能是一个输出问题-您关心的是在输出时它是本地分区的),您可以将它设置为本地时间,它将进行必要的调整。

我找到了DBIx::Class::InflateColumn::DateTime文档,并尝试放置一个时区=>“America/Chicago”在我的列定义中。不过,这似乎没有什么区别。看起来我可能可以使用充气_column()方法,但似乎每当我检索记录集时,我都需要获取时间戳列的充气版本-有没有办法将充气版本作为默认值应用?这看起来有点接近,但不确定如何使用它: