@@ -51,8 +51,7 @@ import qualified Data.ByteString.Char8 as B
5151import Data.Int (Int16, Int32, Int64)
5252import Data.List (foldl')
5353import Data.Ratio (Ratio)
54−import Data.Time ( UTCTime, ZonedTime, LocalTime, Day, TimeOfDay
55− , localTimeToUTC, utc )
54+import Data.Time ( UTCTime, ZonedTime, LocalTime, Day, TimeOfDay )
5655import Data.Typeable (Typeable, typeOf)
5756import Data.Word (Word64)
5857import Database.PostgreSQL.Simple.Internal
@@ -194,16 +193,7 @@ instance FromField [Char] where
194193 fromField f dat = ST.unpack <$> fromField f dat
195194
196195instance FromField UTCTime where
197− fromField f =
198− case oid2builtin (typeOid f) of
199− Just TimestampWithTimeZone -> doIt id parseUTCTime
200− Just Timestamp -> doIt (localTimeToUTC utc) parseLocalTime -- deprecated
201− _ -> const $ returnError Incompatible f ""
202− where
203− doIt _finish _parse Nothing
204− = returnError UnexpectedNull f ""
205− doIt finish parse (Just bs)
206− = either (returnError ConversionFailed f) (pure . finish) (parse bs)
196+ fromField = ff TimestampWithTimeZone "UTCTime" parseUTCTime
207197
208198instance FromField ZonedTime where
209199 fromField = ff TimestampWithTimeZone "ZonedTime" parseZonedTime