Stability | experimental |
---|---|
Maintainer | Leon P Smith <[email protected]> |
Safe Haskell | Safe-Infered |
Database.PostgreSQL.Simple.Time
Description
Time types that supports positive and negative infinity. Also includes new time parsers and printers with better performance than GHC's time package. The parsers only understand the specific variant of ISO 8601 that PostgreSQL emits, and the printers attempt to duplicate this syntax. These likely have problems and shortcomings. Some that I know of:
- Timestamps with time zones before
1883-Nov-18 12:00:00-05
, the moment Standard Railway Time went live, cannot be parsed. This is because PostgreSQL will emit1883-11-18 12:03:57-04:56:02
instead of1883-11-18 11:59:59-05
, and the timezone parser is incomplete. Timestamps without time zones do not have this problem. - Dates an times surrounding
1582-Feb-24
, the date the Gregorian Calendar was introduced, should be investigated for conversion errors. - Points in time Before Christ are not also not supported. For example,
PostgreSQL will emit
0045-01-01 BC
for a value of adate
type. This is the year that the Julian Calendar was adopted.
However, it should be noted that the old parsers also had these issues.
Documentation
Constructors
NegInfinity | |
Finite !a | |
PosInfinity |
Instances
Typeable1 Unbounded | |
ToField Date | |
ToField ZonedTimestamp | |
ToField UTCTimestamp | |
ToField LocalTimestamp | |
FromField Date | |
FromField ZonedTimestamp | |
FromField UTCTimestamp | |
FromField LocalTimestamp | |
Eq a => Eq (Unbounded a) | |
Ord a => Ord (Unbounded a) | |
Read a => Read (Unbounded a) | |
Show a => Show (Unbounded a) |
type UTCTimestamp = Unbounded UTCTimeSource
dayToBuilder :: Day -> BuilderSource
dateToBuilder :: Date -> BuilderSource
unboundedToBuilder :: (a -> Builder) -> Unbounded a -> BuilderSource