Ecto:选择在特定日期插入的记录

时间:2017-02-06 19:21:10

标签: elixir phoenix-framework ecto

我有一个非常简单的Ecto model

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(例如,今天)。最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

我不确定如何通过Ecto单独完成此操作。所以这个答案将特定于SQL。我只在PostreSQL上试过这个。

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