2010-07-12 8 views
5

Zaman damgalarını mysql içine yüklemeye çalışıyorum. Tüm zamanlar UTCTime nesneleridir. HDBC mysql uygulaması, UTCTime nesnelerini sevmiyor gibi görünmesine rağmen, belgelerin dahili olarak her zaman UTC zamanları gibi davrantığını söylüyor. Ben HDBC mysql uygulama SqlEpochTime bağlama destekler gibi görünüyor beri UTCTime EpochTime dönüştürmek gerektiğine inanıyorum. UTCTime'ımı nasıl alacağımı ve bir EpochTime'ı nasıl alacağımı anlayamadım.mysql içinde kullanım için dönüştürme süresi

cevap

4

İşte şimdilik bir çözüm var:

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 

Ben 3 hafta önce Chris Waterson (HDBC-mysql en mainainer) bir düzeltme gönderdi ve kendisinin bir sonraki sürümü içine dahil edeceğiz söyledi.