【发布时间】:2012-07-17 04:39:31
【问题描述】:
我有两个如下所示的表:
CREATE TABLE table1 (user_id int, the_date date);
CREATE TABLE table2 (user_id int, the_date date, something_else real);
我正在编写一个看起来像这样的查询
CREATE TABLE foo AS
SELECT t1.user_id
, (t1.the_date - (t2.the_date - t1.the_date)::int) start_date
FROM table1 t1, table2 t2
where t1.user_id=t2.user_id
;
当我运行上述查询时,我在 psql 控制台上显示以下错误:
ERROR: syntax error at or near "$1" LINE 1: ...the_date - (t2.the_date - t1.the_date)::int) $1 ... ^
查询结果的第二列是显示一个日期,即N days BEFOREtable1中的日期,其中N是table2中的日期与table1中的日期之间的差异(以天为单位)。
注意:table2 的日期总是比table1 中的日期晚。
如何执行此日期计算并将结果作为新的列别名存储在我的查询中?
我正在使用 PG 8.4。
【问题讨论】:
-
我在尝试执行
CREATE查询时遇到不同的错误:ERROR: "user_id" is ambiguous LINE 6: CREATE TABLE foo AS SELECT user_id, (t1.the_date - (t2.the_d... ^编辑:在user_id查询之前添加t1.后工作正常。 PostgreSQL 8.4 -
@LisMorski:我已经更正了我给出的示例。这是一个错字。
标签: sql postgresql date-arithmetic