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でのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

ITパスポート、基本情報技術者、応用情報技術者などIPAが提供する国家資格の過去問を学べるモバイルアプリをリリースしました。
詳しくは下記のプレスリリースをご覧ください。
https://prtimes.jp/main/html/rd/p/000000008.000073303.html

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Django

Posted by ちこ