use strict; use warnings; use DBI; my $dbh = DBI->connect('DBI:Oracle:SID', 'username', 'password') or die "Couldn't connect to database: " . DBI->errstr; # # this date format is just for demo. # the actual variable will have date passed like this: # my $date = "$month/%/$year"; # where $month & $year will be calculated using DateTime # my $date = '08/%/2015'; # I've also tried other date formats like '"08/%/2015"' but nothing seems to work! :( my $sth = $dbh->prepare('SELECT sum(v1),sum(v2),sum(v3),sum(v4),sum(v5) FROM some_table WHERE DATE LIKE ?'); $sth->execute($date) or die "Couldn't get values from table: " . DBI->errstr; my ($v1,$v2,$v3,$v4,$v5); if ($sth->rows == 0) { print "0 results\n"; exit; }else{ while (my @data = $sth_1->fetchrow_array()) { $v1 = $data[0]; $v2 = $data[1]; $v3 = $data[2]; $v4 = $data[3]; $v5 = $data[4]; } print "$v1,$v2,$v3,$v4,$v5\n"; } #### SELECT sum(EMAIL_IRT),sum(DROP_CALL_COUNT),sum(ANS_CALL_COUNT),sum(EMAILS_IN),sum(EMAILS_OUT) FROM CS_STATS WHERE DATE_ADDED >= TO_DATE(?,\'yyyy-mm-dd\') AND DATE_ADDED <= TO_DATE(?,\'yyyy-mm-dd\') #### my $yesterday = DateTime-> now(time_zone=>'Asia/Calcutta')->subtract( days => 1 ); my $y_month = $yesterday->month; my $y_year = $yesterday->year; if ($y_month < 10){ $y_month = "0".$y_month; } my $finaldt1 = $y_year."-".$y_month."-01"; my $finaldt2 = $yesterday->ymd;