1

我在表格中有日期列birthday,例如。价值2003-05-01。在这张表上,我运行以下查询:

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

在我的本地主机上,birthday: 2003-05-15没有返回带有的行(这是正确的),但在 heroku 上它确实如此。

我在本地使用 PostgreSQL 数据库,这就是为什么我不明白,怎么可能在同一个查询上得到两个不同的结果......

有没有人有类似的问题?这种行为可能是什么问题?

谢谢你的每一个建议。

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 回答