modulereview
jeffa
<p>
[cpan://Time::Piece::MySQL] is a very useful module for MySQL users. It is simply an
extension to [cpan://Time::Piece] that provides a handful of methods for converting back and
forth between Time::Piece objects and the MySQL date/time types: date, time, datetime, and
timestamp. (The year type is available from Time::Piece, so it doesn't need to be here.)
</p>
<p>
As an example, say i had a table of events that contained an id and a datetime field:
<pre>
+---------+------------------+
| Field | Type |
+---------+------------------+
| id | int(10) unsigned |
| date | datetime |
+---------+------------------+
</pre>
and i wanted to add 50 days to to each date. The following snippet would do just that:
<code>
use strict;
use warnings;
use DBI;
use Time::Seconds;
use Time::Piece::MySQL;
my $dbh = DBI->connect( ... );
my $sth = $dbh->prepare('update events set date = ? where id = ?');
my $dates = $dbh->selectall_arrayref(
'select id,date from events', {Slice => {}}
);
for (@$dates) {
my $date = localtime->from_mysql_datetime( $_->{date} );
$date += ONE_DAY * 50;
$sth->execute( $date->mysql_datetime, $_->{id} );
}
</code>
A very trivial example, but i think it demonstrates how it can make someone's Perl/MySQL
script easier to work with.
</p>
Bridges the gap between Perl and MySQL date-time types