@@ -, +, @@ "from" argument -- --- opac/oai.pl | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) --- a/opac/oai.pl +++ a/opac/oai.pl @@ -108,6 +108,8 @@ sub new { $self->{ from } = $from; $self->{ until } = $until; $self->{ set } = $set; + $self->{ from_arg } = _strip_UTC_designators($from); + $self->{ until_arg } = _strip_UTC_designators($until); $self->resumptionToken( join( ':', $metadata_prefix, $offset, $from, $until, $set ) ); @@ -116,6 +118,13 @@ sub new { return $self; } +sub _strip_UTC_designators { + my ( $timestamp ) = @_; + $timestamp =~ s/T/ /g; + $timestamp =~ s/Z//g; + return $timestamp; +} + # __END__ C4::OAI::ResumptionToken @@ -319,14 +328,14 @@ sub new { FROM biblioitems "; $sql .= " JOIN oai_sets_biblios ON biblioitems.biblionumber = oai_sets_biblios.biblionumber " if defined $set; - $sql .= " WHERE DATE(timestamp) >= ? AND DATE(timestamp) <= ? "; + $sql .= " WHERE timestamp >= ? AND DATE(timestamp) <= ? "; $sql .= " AND oai_sets_biblios.set_id = ? " if defined $set; $sql .= " LIMIT $repository->{'koha_max_count'} OFFSET $token->{'offset'} "; my $sth = $dbh->prepare( $sql ); - my @bind_params = ($token->{'from'}, $token->{'until'}); + my @bind_params = ($token->{'from_arg'}, $token->{'until_arg'}); push @bind_params, $set->{'id'} if defined $set; $sth->execute( @bind_params ); @@ -472,7 +481,7 @@ sub new { FROM biblioitems "; $sql .= " JOIN oai_sets_biblios ON biblioitems.biblionumber = oai_sets_biblios.biblionumber " if defined $set; - $sql .= " WHERE DATE(timestamp) >= ? AND DATE(timestamp) <= ? "; + $sql .= " WHERE timestamp >= ? AND timestamp <= ? "; $sql .= " AND oai_sets_biblios.set_id = ? " if defined $set; $sql .= " LIMIT $repository->{'koha_max_count'} @@ -480,7 +489,7 @@ sub new { "; my $sth = $dbh->prepare( $sql ); - my @bind_params = ($token->{'from'}, $token->{'until'}); + my @bind_params = ($token->{'from_arg'}, $token->{'until_arg'}); push @bind_params, $set->{'id'} if defined $set; $sth->execute( @bind_params ); --