2010-07-12 2 views
5

Я пытаюсь загрузить timestamps в mysql. Все мои времена - объекты UTCTime. Реализация HDBC mysql, похоже, не похожа на объекты UTCTime, хотя внутренне документация говорит, что она обрабатывает все времена, как если бы они были временем UTC. Я считаю, что мне нужно преобразовать UTCTime в EpochTime, так как похоже, что реализация mysql HDBC поддерживает привязку SqlEpochTime. Я не смог понять, как взять UTCTime и получить от EpochTime.Преобразование времени для использования в mysql

ответ

4

Вот обходной путь сейчас:

import Data.Time.Clock (UTCTime) 
import Data.Time.Clock.POSIX (utcTimeToPOSIXSeconds) 
import Database.HDBC (SqlValue (SqlEpochTime)) 

-- until HDBC-mysql fixes it. use instead of SqlUTCTime (data constructor) 
sqlUTCTime :: UTCTime -> SqlValue 
sqlUTCTime = SqlEpochTime . floor . utcTimeToPOSIXSeconds 

Я послал Криса Уотерсон (mainainer HDBC-в MySQL) починка 3 недели назад, и он сказал, что он будет включать его в следующую версию.