Movatterモバイル変換


[0]ホーム

URL:


modulePostgreSQLBinary.TimewhereimportPostgreSQLBinary.Preludehiding(second)importData.Time.Calendar.Julian{-# INLINABLE dayToPostgresJulian #-}dayToPostgresJulian::Day->IntegerdayToPostgresJulian=(+(2400001-2451545)).toModifiedJulianDay{-# INLINABLE postgresJulianToDay #-}postgresJulianToDay::Int64->DaypostgresJulianToDay=ModifiedJulianDay.fromIntegral.subtract(2400001-2451545){-# INLINABLE microsToTimeOfDay #-}microsToTimeOfDay::Int64->TimeOfDaymicrosToTimeOfDay=evalState$doh<-state$flipdivMod$10^6*60*60m<-state$flipdivMod$10^6*60u<-getreturn$TimeOfDay(fromIntegralh)(fromIntegralm)(microsToPicou){-# INLINABLE microsToUTC #-}microsToUTC::Int64->UTCTimemicrosToUTC=evalState$dod<-state$flipdivMod$10^6*60*60*24u<-getreturn$UTCTime(postgresJulianToDayd)(microsToDiffTimeu){-# INLINABLE microsToPico #-}microsToPico::Int64->PicomicrosToPico=unsafeCoerce.(*(10^6)).(fromIntegral::Int64->Integer){-# INLINABLE microsToDiffTime #-}microsToDiffTime::Int64->DiffTimemicrosToDiffTime=unsafeCoercemicrosToPico{-# INLINABLE microsToLocalTime #-}microsToLocalTime::Int64->LocalTimemicrosToLocalTime=evalState$dod<-state$flipdivMod$10^6*60*60*24u<-getreturn$LocalTime(postgresJulianToDayd)(microsToTimeOfDayu){-# INLINABLE secsToTimeOfDay #-}secsToTimeOfDay::Double->TimeOfDaysecsToTimeOfDay=evalState$doh<-state$flipdivMod'$60*60m<-state$flipdivMod'$60s<-getreturn$TimeOfDay(fromIntegralh)(fromIntegralm)(secsToPicos){-# INLINABLE secsToUTC #-}secsToUTC::Double->UTCTimesecsToUTC=evalState$dod<-state$flipdivMod'$60*60*24s<-getreturn$UTCTime(postgresJulianToDayd)(secsToDiffTimes){-# INLINABLE secsToLocalTime #-}secsToLocalTime::Double->LocalTimesecsToLocalTime=evalState$dod<-state$flipdivMod'$60*60*24s<-getreturn$LocalTime(postgresJulianToDayd)(secsToTimeOfDays){-# INLINABLE secsToPico #-}secsToPico::Double->PicosecsToPicos=unsafeCoerce(truncate$toRationals*10^12::Integer){-# INLINABLE secsToDiffTime #-}secsToDiffTime::Double->DiffTimesecsToDiffTime=unsafeCoercesecsToPico{-# INLINABLE localTimeToMicros #-}localTimeToMicros::LocalTime->Int64localTimeToMicros(LocalTimedayXtimeX)=letd=dayToPostgresJuliandayXp=unsafeCoerce$timeOfDayToTimetimeXin10^6*60*60*24*fromIntegrald+fromIntegral(divp(10^6)){-# INLINABLE localTimeToSecs #-}localTimeToSecs::LocalTime->DoublelocalTimeToSecs(LocalTimedayXtimeX)=letd=dayToPostgresJuliandayXp=unsafeCoerce$timeOfDayToTimetimeXin60*60*24*fromIntegrald+fromRational(p%(10^12)){-# INLINABLE utcToMicros #-}utcToMicros::UTCTime->Int64utcToMicros(UTCTimedayXdiffTimeX)=letd=dayToPostgresJuliandayXp=unsafeCoercediffTimeXin10^6*60*60*24*fromIntegrald+fromIntegral(divp(10^6)){-# INLINABLE utcToSecs #-}utcToSecs::UTCTime->DoubleutcToSecs(UTCTimedayXdiffTimeX)=letd=dayToPostgresJuliandayXp=unsafeCoercediffTimeXin60*60*24*fromIntegrald+fromRational(p%(10^12))-- * Constants in microseconds according to Julian dates standard--------------------------- According to--http://www.postgresql.org/docs/9.1/static/datatype-datetime.html-- Postgres uses Julian dates internally-------------------------yearMicros::Int64=truncate(365.2425*fromIntegraldayMicros::Rational)dayMicros::Int64=24*hourMicroshourMicros::Int64=60*minuteMicrosminuteMicros::Int64=60*secondMicrossecondMicros::Int64=10^6

[8]ページ先頭

©2009-2025 Movatter.jp