これは、10月1日から100日間毎日SQLデータをプルするためのperlスクリプトであり、SQLは日付形式(yyyy-mm-dd)で非常に扱いにくいため、次のようにスクリプトを作成しました。ただし、2011年11月6日の特定の日に、時刻から日付への変換が正しくなく、開始日と終了日が同じになります。
$srt_date='2011-11-06'
$end_date='2011-11-06'
これがperlエラーなのか他の何かなのかわかりません。
use DBI;
use DBD::Oracle qw(:ora_types);
use Compress::Zlib;
use FileHandle;
use Date::Parse;
use Date::Format;
$st_day=str2time('2011-10-1');
@days=(0..100);
foreach $daynum (@days){
$dt1 = $st_day+3600*(24*$daynum);
$dt2 = $st_day+3600*(24*($daynum+1));
$srt_date = time2str("%d-%h-%Y", $dt1);
$end_date = time2str("%d-%h-%Y", $dt2);
print $srt_date, ',' ,$end_date, '\n';
my $sqlGetEid = "select x,y from z where DATETIME>='$srt_date' and DATETIME<'$end_date'";
}