• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:postgreSQLで分からないことがあります。)

postgreSQLでの日付型比較について

このQ&Aのポイント
  • postgreSQLで日付型の比較方法について質問があります。具体的には、文字列として取得した日付を日付型と比較する際に、なぜ正しく比較できるのか疑問です。
  • 質問の具体的な例として、postgreSQLでデータベースのテーブルから日付を取得し、日付型として比較する場合、文字列として取得した日付も正しく比較できます。これはなぜでしょうか?
  • また、質問の例として挙げたSQLでは、CURRENT_DATEとSUBSTR関数を使用して文字列から日付を取得しています。この場合、RDBMSが自動的に文字列を日付型に変換してくれるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • med2dic
  • ベストアンサー率77% (21/27)
回答No.1

postgresqlのバージョン、バージョンが同じでもその環境によって動作が異なります。 質問をする際は最低限バージョンを明記した方が回答しやすくなります。 >CURRENT_DATEは日付型でSUBSTRでとりだした日付は文字列 >なのに何故正しく比較できているのでしょうか? >日付型の形式の文字列であれば、RDBMSがかってに日付型にしてくれるのでしょうか? ご想像のとおりです。いい感じに処理をしてもらっている状態です。 本来は日付と文字列のどちらかを変換して型をそろえる必要がありますし、SUBSTRの引数も日付型ではなく文字列を与えるべきです。 ちなみに私は8.4.1を使用していますが、提示されているようなSQLはエラーとなります。 参考URLをひととおり読んでみてください。 7.4から8.4にバージョンアップした経験があるのですが、システムで発行しているSQLがバタバタとエラーになり、日頃いい加減なSQLを書いていたのだと思い知らされました。

参考URL:
http://lets.postgresql.jp/documents/tutorial/cast/
noname#119939
質問者

お礼

ありがとうございました。 バージョンを書き忘れていてました、以後 気をつけます。 曖昧なSQLだと、バージョンをあげたときに 大変そうなので気おつけます。