---
name: "DateTime::Format::SQLite"
section: "3pm"
platform: "linux"
package: "libdatetime-format-sqlite-perl"
version: "0.11-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/DateTime::Format::SQLite"
---

# DateTime::Format::SQLite(3pm)

Parse and format SQLite dates and times

## NAME

DateTime::Format::SQLite - Parse and format SQLite dates and times

## SYNOPSIS

```
  use DateTime::Format::SQLite;
  my $dt = DateTime::Format::SQLite->parse_datetime( '2003-01-16 23:12:01' );
  # 2003-01-16 23:12:01
  DateTime::Format::SQLite->format_datetime($dt);
```

## DESCRIPTION

This module understands the formats used by SQLite for its `"date"`, `"datetime"` and `"time"` functions.  It can be used to parse these formats in order to create DateTime objects, and it can take a DateTime object and produce a timestring accepted by SQLite.

**NOTE:** SQLite does not have real date/time types but stores everything as strings. This module deals with the date/time strings as understood/returned by SQLite's `"date"`, `"time"`, `"datetime"`, `"julianday"` and `"strftime"` SQL functions. You will usually want to store your dates in one of these formats.

## METHODS

This class offers the methods listed below.  All of the parsing methods set the returned DateTime object's time zone to the **UTC** zone because SQLite does always uses UTC for date calculations. This means your dates may seem to be one day off if you convert them to local time.

- •

  parse\_datetime($string)

  Given a `$string` representing a date, this method will return a new `"DateTime"` object.

  The `$string` may be in any of the formats understood by SQLite's `"date"`, `"time"`, `"datetime"`, `"julianday"` and `"strftime"` SQL functions or it may be in the format returned by these functions (except `"strftime"`, of course).

  The time zone for this object will always be in UTC because SQLite assumes UTC for all date calculations.

  If `$string` contains no date, the parser assumes 2000-01-01 (just like SQLite).

  If given an improperly formatted string, this method may die.

- •

  parse\_date($string)

- •

  parse\_time($string)

- •

  parse\_julianday($string)

  These are aliases for `"parse_datetime"`, for symmetry with `"format_`*\**`"` functions.

- •

  format\_date($datetime)

  Given a `"DateTime"` object, this methods returnes a string in the format YYYY-MM-DD, i.e. in the same format SQLite's `"date"` function uses.

- •

  format\_time($datetime)

  Given a `"DateTime"` object, this methods returnes a string in the format HH:MM:SS, i.e. in the same format SQLite's `"time"` function uses.

- •

  format\_datetime($datetime)

  Given a `"DateTime"` object, this methods returnes a string in the format YYYY-MM-DD HH:MM:SS, i.e. in the same format SQLite's `"datetime"` function uses.

- •

  format\_julianday($datetime)

  Given a `"DateTime"` object, this methods returnes a string in the format DDDDDDDDDD, i.e. in the same format SQLite's `"julianday"` function uses.

## AUTHOR

Claus Färber \<CFAERBER@cpan.org\>

based on `"DateTime::Format::MySQL"` by David Rolsky.

##

Copyright © 2008 Claus Färber.

Copyright © 2003 David Rolsky.

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.

## SEE ALSO

http://datetime.perl.org/

http://www.sqlite.org/lang\_datefunc.html
