我正在尝试在客户提供给我的特定日期之后插入记录。
2018-06-06
以下是我编写查询的方式:
{:ok, date} = NaiveDateTime.from_iso8601(date_string)
from(
m in query,
where: m.inserted_at > ^date
)
- (MatchError)右侧值不匹配:{:error,:invalid_format}
当我尝试使用简单的Date对象时:
**(Ecto.Query.CastError)lib / messages / search.ex:77:
~D[2018-06-06]
中的值where
无法转换为类型:查询中的naive_datetime
如何在客户端传递给我的虚拟字符串日期之后找到所有插入的消息?
答案 0 :(得分:0)
您有一个ISO 8601日期,而不是日期时间。您可以将其转换为NaiveDateTime
(小时,分钟,秒都设置为0),如下所示:
iex(1)> date_string = "2018-06-06"
"2018-06-06"
iex(2)> ndt = NaiveDateTime.from_iso8601!(date_string <> " 00:00:00")
~N[2018-06-06 00:00:00]
现在,您可以在查询中使用ndt
,它可以正常运行。