mysql - 如何使用日期范围在perl上循环mysql查询

标签 mysql arrays perl loops date

是否可以按日期范围循环查询?

开始日期:table_19910101

结束日期:table_19910131

sub verify {

    &db_connect();

    print "Trigger count 19910101: \n";
    $QRY = "SELECT trigger,count(1) FROM table_19910101 
            WHERE trigger IN ('B1','B2');";
    $sth = $dbh->prepare($QRY);
    $sth->execute();
    my $trigger = $sth->fetchall_arrayref();
    foreach my $row (@$trigger) {
        print join(" ", @$row), "\n";
    }
}

最佳答案

事实上,您只需查找一个月的表格,这让这变得更容易。

foreach (19910101 .. 19911031) {
  say $_;
}

如果您要超过一个月的边界,则范围运算符将开始生成无效日期。

您的子例程使用了它未声明的变量 ($dbh)。这是糟糕的编程习惯。我怀疑该变量是在 db_connect() 中作为全局变量创建的。从该子例程返回句柄会是一个更好的主意。

my $dbh = db_connect();

此外,请从子例程调用中删除 &。自 1994 年发布 Perl 5 以来,通常不再需要它。

关于mysql - 如何使用日期范围在perl上循环mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44775862/

相关文章:

mysql - 将记录的查询存储到 mysql 客户端

javascript - ajax 成功的数组将数据放入表中的相应输入中

php - 从 Android -> PHP -> MYSQL 插入两个条目

c - 关于C中指针和数组的问题

php - 有什么类似于 PHP 中的 Hibernate 的吗?

c - c语言中如何向数组中插入多个元素

arrays - 更改数组以使两个数组的总和相等的最短时间

excel - 我可以使用 Perl 从 PDF 中提取表格吗?

perl - 我怎样才能将信息转发到另一个网站并获得其在 Perl 中的响应?

perl - 具有零值的退出代码状态是否总是意味着在 Perl 中成功运行?