是否可以按日期范围循环查询?
开始日期: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/