5

タイムスタンプをmysqlにロードしようとしています。私の時間はすべてUTCTimeオブジェクトです。HDBC mysqlの実装は、UTCTimeオブジェクトを好まないようですが、内部的には、ドキュメントには、常にUTC時間であるかのように扱われると記載されています。HDBC mysql実装がSqlEpochTimeのバインドをサポートしているように見えるので、UTCTimeをEpochTimeに変換する必要があると思います。UTCTimeを取得してEpochTimeを取得する方法を理解できませんでした。

4

1 に答える 1

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

私は3週間前にChrisWaterson(HDBC-mysqlのmainainer)に修正を送信しましたが、彼はそれを次のバージョンに組み込むと述べました。

于 2010-07-12T17:39:38.547 に答える