package My::Database; # Main Class::DBI module use base 'Class::DBI'; # Other Class::DBI code here sub is_datetime { my $class = shift; my $field = shift || return; use DateTime::Format::DBI; my $dtf = DateTime::Format::DBI->new( $class->db_Main ); $class->has_a( $field => 'DateTime', inflate => sub { $dtf->parse_datetime( shift ) }, deflate => sub { $dtf->format_datetime( shift ) }, ); } package My::Database::SomeTable; use base 'My::Database'; # Other Class::DBI code here __PACKAGE__->is_datetime( 'timestamp' );