将时间转换为适用于mysql的格式

5

我正在尝试将时间戳加载到mysql中。我的所有时间都是UTCTime对象。HDBC mysql实现似乎不喜欢UTCTime对象,尽管内部文档说它将所有时间视为UTC时间处理。我认为我需要将UTCTime转换为EpochTime,因为看起来HDBC mysql实现支持绑定SqlEpochTime。我一直没有弄清楚如何从我的UTCTime获取一个EpochTime。

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周前向Chris Waterson(HDBC-mysql的主要维护者)发送了一份修复方案,他说会在下一个版本中加入。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接