Safe Haskell | None |
---|---|
Language | Haskell2010 |
Database.PostgreSQL.Interval
Synopsis
- data Interval = MkInterval {}
- zero :: Interval
- fromMicroseconds :: Int64 -> Interval
- fromMilliseconds :: Int64 -> Maybe Interval
- fromSeconds :: Int64 -> Maybe Interval
- fromMinutes :: Int64 -> Maybe Interval
- fromHours :: Int64 -> Maybe Interval
- fromDays :: Int32 -> Interval
- fromWeeks :: Int32 -> Maybe Interval
- fromMonths :: Int32 -> Interval
- fromYears :: Int32 -> Maybe Interval
Documentation
This type represents a PostgreSQL interval. Intervals can have month, day, and microsecond components. Each component is bounded, so they are not arbitrary precision. For more information about intervals, consult the PostgreSQL documentation: https://www.postgresql.org/docs/17/datatype-datetime.html#DATATYPE-INTERVAL-INPUT.
Note that the time
library provides several duration types that are not
appropriate to use as PostgreSQL intervals:
NominalDiffTime
: Does not handle days or months. Allows up to picosecond precision. Is not bounded.CalendarDiffTime
: Does not handle days. Embeds aNominalDiffTime
. Is not bounded.CalendarDiffDays
: Does not handle seconds. Is not bounded.
Constructors
MkInterval | |
Instances
Show Interval Source # | |
Eq Interval Source # | |
FromField Interval Source # | Uses |
Defined in Database.PostgreSQL.Interval.Unstable Methods | |
ToField Interval Source # | Uses |
Defined in Database.PostgreSQL.Interval.Unstable |
The empty interval, representing no time at all.
>>>
zero
MkInterval {months = 0, days = 0, microseconds = 0}
fromMicroseconds :: Int64 -> Interval Source #
Creates an interval from a number of microseconds.
>>>
fromMicroseconds 1
MkInterval {months = 0, days = 0, microseconds = 1}
fromMilliseconds :: Int64 -> Maybe Interval Source #
Creates an interval from a number of milliseconds. Returns Nothing
if
the interval would overflow.
>>>
fromMilliseconds 1
Just (MkInterval {months = 0, days = 0, microseconds = 1000})>>>
fromMilliseconds 9223372036854776
Nothing
fromSeconds :: Int64 -> Maybe Interval Source #
Creates an interval from a number of seconds. Returns Nothing
if the
interval would overflow.
>>>
fromSeconds 1
Just (MkInterval {months = 0, days = 0, microseconds = 1000000})>>>
fromSeconds 9223372036855
Nothing
fromMinutes :: Int64 -> Maybe Interval Source #
Creates an interval from a number of minutes. Returns Nothing
if the
interval would overflow.
>>>
fromMinutes 1
Just (MkInterval {months = 0, days = 0, microseconds = 60000000})>>>
fromMinutes 153722867281
Nothing
fromHours :: Int64 -> Maybe Interval Source #
Creates an interval from a number of hours. Returns Nothing
if the
interval would overflow.
>>>
fromHours 1
Just (MkInterval {months = 0, days = 0, microseconds = 3600000000})>>>
fromHours 2562047789
Nothing
fromDays :: Int32 -> Interval Source #
Creates an interval from a number of days.
>>>
fromDays 1
MkInterval {months = 0, days = 1, microseconds = 0}
fromWeeks :: Int32 -> Maybe Interval Source #
Creates an interval from a number of weeks. Returns Nothing
if the
interval would overflow.
>>>
fromWeeks 1
Just (MkInterval {months = 0, days = 7, microseconds = 0})>>>
fromWeeks 306783379
Nothing
fromMonths :: Int32 -> Interval Source #
Creates an interval from a number of months.
>>>
fromMonths 1
MkInterval {months = 1, days = 0, microseconds = 0}