2016-10-25 43 views
3

這是一個笑話,我不得不問這個問題,但真的不清楚最好的方法是什麼。所以這可能會變成一種咆哮。但我有這樣的信息,Elixir在這裏缺乏認真。Elixir:如何獲取Ecto查詢的當前日期?

我覺得現在的日期在Ecto裏查詢當前的日期非常複雜。例如像get me every record where date column x contains a date before t

截至目前我使用Erlangs :calendar.universal_time(),通過那Ecto.DateTime.from_erl,並再次到Ecto.Date.cast

date = :calendar.universal_time() |> Ecto.DateTime.from_erl |> Ecto.Date.cast 

請注意,我們也有匹配模式的實際日期,因爲我們得到一個元組

{:ok, #Ecto.Date<2016-10-25>} 

所以這是

{:ok, date} = :calendar.universal_time() |> Ecto.DateTime.from_erl |> Ecto.Date.cast 

當然,我可以使用Ecto.Date.cast!但再次是你必須找出並可能有一些缺點,我不知道。

然後我可以建立查詢。但我必須每次撥打至少3個功能...

query = from m in Model, select: {m.name, m.email}, where: (m.canceled_to > ^date), order_by: [desc: m.inserted_at] 
result = Repo.all(query) 

那麼有沒有更好的方法,我錯過了?

+0

不'Ecto.Date.utc/0'爲你工作? - https://hexdocs.pm/ecto/Ecto.Date.html#utc/0 –

+1

哈。那是我正在尋找的那個......謝謝。 –

回答