@@ -13,7 +13,7 @@ module Rel8.Expr.Time
13 , diffTime
13 , diffTime
14 , subtractTime
14 , subtractTime
16− -- * Working with @DiffTime@
16+ -- * Working with @NominalDiffTime@
17 , scaleInterval
17 , scaleInterval
18 , second, seconds
18 , second, seconds
19 , minute, minutes
19 , minute, minutes
@@ -35,7 +35,7 @@ import Rel8.Expr.Opaleye ( unsafeCastExpr, unsafeLiteral )
37import Data.Time.Calendar ( Day )
37import Data.Time.Calendar ( Day )
38−import Data.Time.Clock ( DiffTime, UTCTime )
38+import Data.Time.Clock ( NominalDiffTime, UTCTime )
41-- | Corresponds to @date(now())@.
41-- | Corresponds to @date(now())@.
@@ -74,93 +74,93 @@ now = nullaryFunction "now"
76-- | Add a time interval to a point in time, yielding a new point in time.
76-- | Add a time interval to a point in time, yielding a new point in time.
77−addTime :: Expr DiffTime -> Expr UTCTime -> Expr UTCTime
77+addTime :: Expr NominalDiffTime -> Expr UTCTime -> Expr UTCTime
78addTime = flip (binaryOperator "+")
78addTime = flip (binaryOperator "+")
81-- | Find the duration between two times.
81-- | Find the duration between two times.
82−diffTime :: Expr UTCTime -> Expr UTCTime -> Expr DiffTime
82+diffTime :: Expr UTCTime -> Expr UTCTime -> Expr NominalDiffTime
83diffTime = binaryOperator "-"
83diffTime = binaryOperator "-"
86-- | Subtract a time interval from a point in time, yielding a new point in time.
86-- | Subtract a time interval from a point in time, yielding a new point in time.
87−subtractTime :: Expr DiffTime -> Expr UTCTime -> Expr UTCTime
87+subtractTime :: Expr NominalDiffTime -> Expr UTCTime -> Expr UTCTime
88subtractTime = flip (binaryOperator "-")
88subtractTime = flip (binaryOperator "-")
91−scaleInterval :: Expr Double -> Expr DiffTime -> Expr DiffTime
91+scaleInterval :: Expr Double -> Expr NominalDiffTime -> Expr NominalDiffTime
92scaleInterval = binaryOperator "*"
92scaleInterval = binaryOperator "*"
95-- | An interval of one second.
95-- | An interval of one second.
96−second :: Expr DiffTime
96+second :: Expr NominalDiffTime
97second = singleton "second"
97second = singleton "second"
100-- | Create a literal interval from a number of seconds.
100-- | Create a literal interval from a number of seconds.
101−seconds :: Expr Double -> Expr DiffTime
101+seconds :: Expr Double -> Expr NominalDiffTime
102seconds = (`scaleInterval` second)
102seconds = (`scaleInterval` second)
105-- | An interval of one minute.
105-- | An interval of one minute.
106−minute :: Expr DiffTime
106+minute :: Expr NominalDiffTime
107minute = singleton "minute"
107minute = singleton "minute"
110-- | Create a literal interval from a number of minutes.
110-- | Create a literal interval from a number of minutes.
111−minutes :: Expr Double -> Expr DiffTime
111+minutes :: Expr Double -> Expr NominalDiffTime
112minutes = (`scaleInterval` minute)
112minutes = (`scaleInterval` minute)
115-- | An interval of one hour.
115-- | An interval of one hour.
116−hour :: Expr DiffTime
116+hour :: Expr NominalDiffTime
117hour = singleton "hour"
117hour = singleton "hour"
120-- | Create a literal interval from a number of hours.
120-- | Create a literal interval from a number of hours.
121−hours :: Expr Double -> Expr DiffTime
121+hours :: Expr Double -> Expr NominalDiffTime
122hours = (`scaleInterval` hour)
122hours = (`scaleInterval` hour)
125-- | An interval of one day.
125-- | An interval of one day.
126−day :: Expr DiffTime
126+day :: Expr NominalDiffTime
127day = singleton "day"
127day = singleton "day"
130-- | Create a literal interval from a number of days.
130-- | Create a literal interval from a number of days.
131−days :: Expr Double -> Expr DiffTime
131+days :: Expr Double -> Expr NominalDiffTime
132days = (`scaleInterval` day)
132days = (`scaleInterval` day)
135-- | An interval of one week.
135-- | An interval of one week.
136−week :: Expr DiffTime
136+week :: Expr NominalDiffTime
137week = singleton "week"
137week = singleton "week"
140-- | Create a literal interval from a number of weeks.
140-- | Create a literal interval from a number of weeks.
141−weeks :: Expr Double -> Expr DiffTime
141+weeks :: Expr Double -> Expr NominalDiffTime
142weeks = (`scaleInterval` week)
142weeks = (`scaleInterval` week)
145-- | An interval of one month.
145-- | An interval of one month.
146−month :: Expr DiffTime
146+month :: Expr NominalDiffTime
147month = singleton "month"
147month = singleton "month"
150-- | Create a literal interval from a number of months.
150-- | Create a literal interval from a number of months.
151−months :: Expr Double -> Expr DiffTime
151+months :: Expr Double -> Expr NominalDiffTime
152months = (`scaleInterval` month)
152months = (`scaleInterval` month)
155-- | An interval of one year.
155-- | An interval of one year.
156−year :: Expr DiffTime
156+year :: Expr NominalDiffTime
157year = singleton "year"
157year = singleton "year"
160-- | Create a literal interval from a number of years.
160-- | Create a literal interval from a number of years.
161−years :: Expr Double -> Expr DiffTime
161+years :: Expr Double -> Expr NominalDiffTime
162years = (`scaleInterval` year)
162years = (`scaleInterval` year)
165−singleton :: String -> Expr DiffTime
165+singleton :: String -> Expr NominalDiffTime
166singleton unit = unsafeLiteral $ "'1 " ++ unit ++ "'"
166singleton unit = unsafeLiteral $ "'1 " ++ unit ++ "'"