Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Yesod中使用UTCTime和SQLite_Sqlite_Haskell_Yesod - Fatal编程技术网

在Yesod中使用UTCTime和SQLite

在Yesod中使用UTCTime和SQLite,sqlite,haskell,yesod,Sqlite,Haskell,Yesod,在Yesod的模型中使用UTCTime字段时,我得到以下错误: PersistMarshalError "field timestamp: Expected UTCTime, received PersistText \"09:18:07\"" 我正在使用SQLite存储我的数据库。我的模型如下所示: Myobject timestamp UTCTime default=CURRENT_TIME otherfield Text myobjects <- selectLi

在Yesod的模型中使用
UTCTime
字段时,我得到以下错误:

PersistMarshalError "field timestamp: Expected UTCTime, received PersistText \"09:18:07\""
我正在使用SQLite存储我的数据库。我的模型如下所示:

Myobject
    timestamp UTCTime default=CURRENT_TIME
    otherfield Text
myobjects <- selectList [] [Desc MyobjectTimestamp]
请注意,无论是否使用默认值,都会发生此错误

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

Myobject
    timestamp UTCTime default=CURRENT_TIME
    otherfield Text
myobjects <- selectList [] [Desc MyobjectTimestamp]

myobjects您存储了一个文本值
“09:18:07”
,而它需要一个UTCTime值。您是否手工插入值


getCurrentTime
来自
数据。Time
返回类型为
IO UTCTime
的值,因此您可以在GHCI中使用
PUTSR getCurrentTime
来获取有效的表示形式,或者使用
现在不,该值已作为默认值插入。那么我将把这个函数放在哪里呢?我可以改变封送处理的方式吗?至于默认值,我不知道。我所知道的是,时间戳中的值应该如下所示:
2013-10-25 10:16:32.1627238 UTC
,以被Yesod接受为UTCTime值。您应该参考SQLite的文档以获得这样的时间戳。当我以这种格式输入日期时,它确实有效,谢谢!把它包括在你的答案中,如果没有人解释为什么默认设置不起作用,我会接受你的答案。我也找到了默认设置的解决方案。使用
CURRENT\u TIMESTAMP
而不是
CURRENT\u TIME
可以解决此问题。