2017-02-06 6 views
0

У меня есть очень простой Ecto model:Ecto: выбрать записи inserted_at определенную дату

defmodule MyApp.User do 
    use MyApp.Web, :model 

    schema "users" do 
    field :name, :string 
    timestamps() 
    end 

    @doc """ 
    Builds a changeset based on the `struct` and `params`. 
    """ 
    def changeset(struct, params \\ %{}) do 
    struct 
    |> cast(params, []) 
    |> validate_required([]) 
    end 
end 

И миграция:

defmodule MyApp.Repo.Migrations.CreateUser do 
    use Ecto.Migration 

    def down do 
    drop table(:users) 
    end 

    def change do 
    drop_if_exists table(:users) 
    create table(:users) do 
     add :name, :string 
     timestamps() 
    end 
    end 

end 

Я хочу, чтобы выбрать все users, которые были inserted_at конкретную дату (для пример, сегодня). Каков наилучший способ сделать это?

ответ

2

Я не уверен, как это сделать через Ecto. Поэтому этот ответ будет специфичным для SQL. Я только пробовал это на PostreSQL.

Attendance.Repo.all(from s in Something, 
        where: fragment("date(inserted_at) = ?", ^~D[2017-02-06]))