Djangoのconnectionでcolumn 〇〇 is of type date but expression is of type integer

今回はDjango+PostgreSQLの環境でconnectionを使ってSQLを流したときに、「column 〇〇 is of type date but expression is of type integer」というエラーが起きたときの原因と対処法についてご紹介いたします。

Djangoのバージョンは2系です。



Djangoのconnectionでcolumn 〇〇 is of type date but expression is of type integer

Djangoで生のSQLを流したときに、表題のエラーが出てしまいました。

私がやろうとしたことは、String型のSQLの文字列を用意して、

のような形で変数として格納し、cursorのexecuteを実行したときに表題のエラーが現れました。

column3はDate型のカラムが入り、testDateにはDate型のPythonの値が入っています。
しかしながら、エラーメッセージを読むとinteger型と解釈されてしまっているようです。

結論を書くと、

のようにtestDateに対してダブルクォーテーションで括ってやる必要があります。

考えてみれば当たり前ですが、見落としがちなので注意しましょう。

終わりに

今回はDjango+PostgreSQLの環境でconnectionを使ってSQLを流したときに、「column 〇〇 is of type date but expression is of type integer」というエラーが起きたときの原因と対処法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
ブログやTwitterでのシェアOKです。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

Youtubeチャンネル開設いたしました。
よろしければチャンネル登録お願いいたします。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Django

Posted by ちこ