use Time::Piece::MySQL;
use Date::Parse;
__PACKAGE__->has_a(
date => 'Time::Piece',
inflate => sub {
Time::Piece->new(Date::Parse::str2time(shift));
},
deflate => 'mysql_datetime',
);
####
package MyTime;
use strict;
use Time::Piece;
package Time::Piece;
use overload '""' => sub { shift->dmy("/"); },
'cmp' => \&str_compare,
'fallback' => undef;
1;
####
package MyDBI::Table;
use base 'Class::DBI';
use Time::Piece::MySQL;
use MyTime;
use Date::Parse;
__PACKAGE__->has_a(
date => 'Time::Piece',
inflate => sub {
Time::Piece->new(Date::Parse::str2time(shift));
},
deflate => 'mysql_datetime',
);
####
my $t = MyDBI::Table->retrieve(1);
print $t->date, "\n";
$t->date('2003-07-08');
print $t->date, "\n";
$t->date('07/08/2003'); # read as MM/DD/YYYY
print $t->date, "\n";