2010-07-12 27 views
5

我想加載時間戳到mysql中。我所有的時間都是UTCTime對象。 HDBC的mysql實現似乎不喜歡UTCTime對象,雖然內部文檔說它將所有時間視爲UTC時間。我相信我需要將UTCTime轉換爲EpochTime,因爲它看起來像HDBC mysql實現支持綁定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 

我送克里斯·沃特森(HDBC-MySQL的mainainer)修復3個星期前,他說,他將其納入下一個版本。