#!/usr/bin/perl use strict; use warnings; use DBI; use DBD::DB2; printf "DBD::DB2 Version = %s\n", $DBD::DB2::VERSION; my $dbh = DBI->connect("dbi:DB2:sample2","","", { RaiseError => 0, AutoCommit => 1 }) or die "Could not connect to database :".DBI->errstr; # create test table #$dbh->do('DROP TABLE tmp_session'); my $sql = 'CREATE table tmp_session ( FID_CUST varchar(50), DAT_END timestamp )'; $dbh->do($sql); # insert $sql = 'INSERT INTO tmp_session VALUES (?,?)'; my $sth = $dbh->prepare($sql); my @data = ( ['ABCD3','2017-09-17 12:00:00'], ['ABCD4','2017-09-18 12:00:00'], ); for (@data){ $sth->execute(@$_); } # select $sql = 'SELECT FID_CUST,DAT_END FROM tmp_session WHERE DAT_END between ? AND ?'; my @dates = ( '2017-09-17 11:00:00', '2017-09-18 11:00:00' ); my $ar = $dbh->selectall_arrayref($sql,undef,@dates); for (@$ar){ print "@$_\n"; }