
DateTime::Format::DBI - Find a parser class for a database connection.

use DBI;
use DateTime;
use DateTime::Format::DBI;
my $db = DBI->connect('dbi:...');
my $db_parser = DateTime::Format::DBI->new($dbh);
my $dt = DateTime->now();
$db->do("UPDATE table SET dt=? WHERE foo='bar'",undef,
$db_parser->format_datetime($dt);

This module finds a DateTime::Format::* class that is suitable for the use with a given DBI connection (and DBD::* driver).
It currently supports the following drivers: MySQL, PostgreSQL (Pg).

Creates a new DateTime::Format::* instance the exact class of which depends on the driver used for the database connection referenced by $dbh.

DateTime::Format::DBI is just a front-end factory that will return one of the format classes based on the nature of your $dbh.
For information on the interface of the returned parser object, please see the documentation for the class pertaining to your particular $dbh.
In general, parser classes for databases will implement the following methods. For more information on the exact behaviour of these methods, see the documentation of the parser class.
Given a string containing a date and/or time representation from the database used, this method will return a new DateTime object.
If given an improperly formatted string, this method may die.
Given a DateTime object, this method returns a string appropriate as input for all or the most common date and date/time types of the database used.
Given a string containing a duration representation from the database used, this method will return a new DateTime::Duration object.
If given an improperly formatted string, this method may die.
Not all databases and format/formatter classes support durations; please use UNIVERSAL::has to check for the availability of this method.
Given a DateTime::Duration object, this method returns a string appropriate as input for the duration or interval type of the database used.
Not all databases and parser/formatter classes support durations; please use UNIVERSAL::has to check for the availability of this method.
Parser/formatter classes may additionally define methods like parse_type or format_type (where type is derived from the SQL type); please see the documentation of the individual format class for more information.

Support for this module is provided via the datetime@perl.org email list. See http://lists.perl.org/ for more details.

Claus A. Färber <perl@faerber.muc.de>

Copyright © 2003 Claus A. Färber. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.

datetime@perl.org mailing list