gpt4 book ai didi

sqlite - 在 Yesod 中将 UTCTime 与 SQLite 结合使用

转载 作者:行者123 更新时间:2023-12-03 16:55:57 28 4
gpt4 key购买 nike

在 Yesod 的模型中使用 UTCTime 字段时,出现以下错误:

PersistMarshalError "field timestamp: Expected UTCTime, received PersistText \"09:18:07\""

我正在使用 SQLite 来存储我的数据库。我的模型如下所示:

Myobject
timestamp UTCTime default=CURRENT_TIME
otherfield Text

请注意,使用默认值和不使用默认值都会发生此错误。

我正在选择 Myobject 实体列表,如下所示:

myobjects <- selectList [] [Desc MyobjectTimestamp]

使用 MyobjectOtherfield 而不是 MyobjectTimestamp 也无济于事,这是有道理的,因为所有数据都已获取并因此进行了编码。

有人问过类似的问题here ,但答案对我没有帮助。

如何在使用 SQLite 的同时在 Yesod 中使用 UTCTime

编辑:错误中提到的 PersistText\"09:18:07\" 是该字段的默认值。

最佳答案

您存储了一个文本值 "09:18:07" ,而它需要一个 UTCTime 值。您是否手动插入值?

getCurrentTime来自 Data.Time返回 IO UTCTime 类型的值, 所以你可以使用 putStr getCurrentTime在 GHCI 中获得有效表示,或使用 now <- liftIO getCurrentTime在你的函数中。

编辑:因为getCurrentTime返回一个时间戳,如:2013-10-25 10:16:32.1627238 UTC ,在您的数据库中插入类似的值应该可以解决错误。

关于sqlite - 在 Yesod 中将 UTCTime 与 SQLite 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19586050/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com