This demo code works for me , maybe try it on your test server
DB2 Express-C 11.1
Windows 10
perl 5, version 16, subversion 1 (v5.16.1) built for MSWin32-x64-multi-thread
DBD:DB2 Version 1.85
#!/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";
}
poj