Nao000のぶろぐ

蝶を追っている少年になりたい

Ecto.Adapters.SQL.query で %Date{} 日付を使う

Ecto.Adapters.SQL.query で %Date{} 日付を使う

Date構造体を使う

例えば実行したいSQLが次のものだとする。

SELECT * FROM {TABLE} WHERE {TABLE}.sample_date = '2021-01-06'

Ecto.Adapters.SQL.query で実行する場合は以下のようにする。

{:ok, date} = Date.from_iso8601("2021-01-06")

Ecto.Adapters.SQL.query!(App.Repo, "SELECT * FROM {TABLE} WHERE {TABLE}.sample_date = $1", [date])

文字列として "2021-01-06" を指定するとエラーになりました。エラーメッセージにも %Date{} が想定されますとありました。