나는 Phoenixframework 프로젝트에 Timex.Ecto.Date 값을 보유하는 생일 속성이있는 사용자 모델을 가지고 있습니다.축하 할 다음 생일 찾기
defmodule MyProject.User do
use MyProject.Web, :model
schema "users" do
field :active, :boolean
field :birthday, Timex.Ecto.Date
field :login, :string
field :email, :string
field :password, :string, virtual: true
field :password_hash, :string
field :name, :string
field :nickname, :string
timestamps
end
# ... changeset and other code ...
end
이제 앞으로 30 일 이내에 생일을 축하 할 모든 사용자를 찾으려고합니다. 생년월일이 1980-02-01에 사용자 레코드가 있다고 가정합니다. 오늘은 2017-01-13입니다.
내가 지금 무엇을 가지고 :
{:ok, date_from} =
Timex.local
|> Timex.Ecto.Date.cast
{:ok, date_to} =
Timex.local
|> Timex.add(Timex.Duration.from_days(30))
|> Timex.Ecto.Date.cast
MyProject.Repo(from(u in MyProject.User, where: u.birthday >= ^date_from, where: u.birthday <= ^date_to))
올해의 작동 할 수 없기 때문에. ecto 쿼리를 작성하려면 어떻게해야합니까? (WHERE
절 전용)
답변을 모르지만 커뮤니티에 사용중인 데이터베이스를 요청하는 것이 더 유용 할 수 있습니다. 예를 들어, SQL 데이터베이스를 사용하고 있다면 SQL 태그가 붙은 질문을하십시오. 원시 쿼리를 수행하는 방법을 알았 으면이를 간단하게 ecto로 변환해야합니다. –
오 죄송합니다. PostgreSQL 데이터베이스를 사용하고 있다는 것을 잊어 버렸습니다. – guitarman