2010-07-12 3 views
5

J'essaie de charger des horodatages dans mysql. Toutes mes heures sont des objets UTCTime. L'implémentation de mysql HDBC ne semble pas aimer les objets UTCTime bien que la documentation indique en interne qu'elle traite tous les temps comme s'ils étaient des temps UTC. Je crois que j'ai besoin de convertir UTCTime en EpochTime car il semble que l'implémentation mysql HDBC supporte la liaison SqlEpochTime. Je n'ai pas été capable de comprendre comment prendre mon UTCTime et obtenir un EpochTime.Convertir le temps à utiliser dans mysql

Répondre

4

Voici une solution de contournement pour l'instant:

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 

J'ai envoyé Chris Waterson (le mainainer de HDBC-mysql) il y a une solution 3 semaines et il a dit qu'il va l'incorporer dans la prochaine version.