The code was selecting MARC records with a 260 or 264 $c that had 1 to 4
characters. However, we only want 4 character dates. On the off chance
that a record with a 3 year date has a bad 008 date1, we can update that
record manually.
Signed-off-by: Liam Whalen <liam.whalen@bc.libraries.coop>
WHERE mrfr.record IN (SELECT record
FROM metabib.real_full_rec
WHERE tag = '008' AND substring(value, 8, 4) ~ '(^\\s*\$|^\\d{1,3}\$|[^0-9\\su]|203[1-9])')
- AND (tag = '260' OR tag = '264') AND subfield = 'c' AND value ~ '\\d{1,4}' AND bre.deleted = false AND aou.shortname NOT IN ('MWP', 'AB', 'LB', 'ITC', 'HBCA')");
+ AND (tag = '260' OR tag = '264') AND subfield = 'c' AND value ~ '\\d{4}' AND bre.deleted = false AND aou.shortname NOT IN ('MWP', 'AB', 'LB', 'ITC', 'HBCA')");
$sth->execute;
my $records = $sth->fetchall_arrayref([0]);
$sth->finish;