Elixir Exto获取两个unix时代之间的所有记录
我正在尝试使用我认为非常基本的ecto查询来获取两个unix时间戳之间的记录。大致如下:Elixir Exto获取两个unix时代之间的所有记录,elixir,ecto,Elixir,Ecto,我正在尝试使用我认为非常基本的ecto查询来获取两个unix时间戳之间的记录。大致如下: b = Ecto.DateTime.from_unix!(begin_utc_epoch, :second) |> DateTime.to_naive e = Ecto.DateTime.from_unix!(end_utc_epoch, :second) |> DateTime.to_naive query = from r in MyModel, where r.inserted_at
b = Ecto.DateTime.from_unix!(begin_utc_epoch, :second) |> DateTime.to_naive
e = Ecto.DateTime.from_unix!(end_utc_epoch, :second) |> DateTime.to_naive
query = from r in MyModel,
where r.inserted_at > ^b and r.inserted_at < ^e
b=exto.DateTime.from_unix!(开始:秒)|>DateTime.to_朴素
e=exto.DateTime.from_unix!(结束utc纪元:秒)|>DateTime.to_朴素
query=来自MyModel中的r,
其中r.inserted\u在“^b”处,r.inserted\u在“^e”处
我得到的只是错误。目前情况是:
(FunctionClauseError)DateTime.to\u naive/1中没有匹配的函数子句
我在某个地方读到,我应该使用NaiveDateTime,所以我一直在尝试转换为NaiveDateTime时间戳。任何帮助都将不胜感激。我肯定我做错了什么,因为它看起来太复杂了。显然,我对长生不老药很陌生。提前感谢。如果您在处插入的数据类型是NaiveDateTime,则您可以使用日期时间进行转换:
b = DateTime.from_unix!(begin_utc_epoch) |> DateTime.to_naive
e = DateTime.from_unix!(end_utc_epoch) |> DateTime.to_naive
query =
from r in MyModel,
where: r.inserted_at > ^b and r.inserted_at < ^e
b=DateTime.from_unix!(begin_utc_epoch)|>DateTime.to_naive
e=DateTime.from_unix!(end_utc_epoch)|>DateTime.to_naive
查询=
从MyModel中的r,
其中:r.inserted\u在“^b”和r.inserted\u在“^e”
我找到了一种相对干净的方法:
b = NaiveDateTime.add(~N[1970-01-01 00:00:00], begin_utc_epoch)
e = NaiveDateTime.add(~N[1970-01-01 00:00:00], end_utc_epoch)
query = from r in MyModel,
where r.inserted_at > ^b and r.inserted_at < ^e
b=NaiveDateTime.add(~N[1970-01-01 00:00:00],开始utc时代)
e=datetime.add(~N[1970-01-01 00:00:00],utc时代结束)
query=来自MyModel中的r,
其中r.inserted\u在“^b”处,r.inserted\u在“^e”处
搞砸了我的是,我认为查询结果中的时间戳在哪里,exto.DateTimes(不知道符号是什么~N[blah blah]在哪里。它们是天真的时间戳。我在比较苹果和桔子。Doh!谢谢你的回答。我试过了,它抱怨。我可能使用了不同的版本(我使用的是elixir 1.4.2)或者别的什么。通常,我很忙,必须继续前进。而且,我对埃利克斯和菲尼克斯很陌生,所以我犯了很多愚蠢的错误。所以我可能是站在我这边的