timestamp型の値をperlから計算してハマった。
postgresqlのデータベーステーブルに入っているtimestamp型の値を1日進めた値が欲しかった。
やり方は、
■ - fyamaの日記に書いている通りやって、できた。
my $v_time = "'2009-03-24 16:00:00'"; my $v_interval = "'+1 day'"; my $query = "SELECT CAST(? AS TIMESTAMP) + CAST(? AS INTERVAL)"; my $db_retref = $dbh->selectall_arrayref($query, undef, $v_time, $v_interval);
でも、ちょっとハマった。
my $db_retref = $dbh->selectall_arrayref($query, undef, $v_time, $v_interval);
selectall_arrayrefは「全データを配列の配列参照として取り出す」なので参照が帰ってくる。
だから、実際の値を取り出すには以下のようにする必要がある。
$limit_day = $limit_day_ref->[0][0];
以下も同じ結果。
$limit_day = $$limit_day_ref[0][0];
以下は違う。
$limit_day = $$limit_day_ref[0];