1

たとえば、テーブルに日付列birthdayがあります。値2003-05-01。このテーブルで、次のクエリを実行します。

SELECT "users".* FROM "users" WHERE (users.birthday < current_date - interval '15' year);

私のローカルホストでは、 の行birthday: 2003-05-15は返されません (正しいです) が、heroku では返されます。

ローカルでPostgreSQLデータベースを使用しているため、同じクエリで2つの異なる結果を取得する方法がわかりません...

誰かが同様の問題を抱えていましたか?この動作の問題は何でしょうか?

いつもアドバイスありがとうございます。

4

1 に答える 1

1

値が「15」の文字列内に「年」を入れてみてください。ロングショットですが、Herokuが列のエイリアスであると考えて「年」を黙って削除している可能性があります。

db=# select current_date - interval '15' year;
      ?column?       
---------------------
 1997-04-26 00:00:00

db=# select current_date - interval '15'
        years        
---------------------
 2012-04-25 23:59:45

db=# select current_date - interval '15 year';
      ?column?       
---------------------
 1997-04-26 00:00:00
于 2012-04-26T20:03:51.987 に答える