我试图创建一个真/假标志,是真实的,当两个日期参数集包含一些重叠的时间或天。我的理解是,Postgres的已经有一个名为“”重叠了这样的功能,因为此文档中看到,从8.4:重叠功能的红移
[https://www.postgresql.org/docs/8.4/static/functions-datetime.html][1]
当我尝试在红移使用OVERLAPS,似乎功能的工作原理,请参阅下面的例子:
SELECT (DATE '2001-02-16', DATE '2001-12-21') OVERLAPS
(DATE '2001-10-30', DATE '2002-10-30');
然而,当我尝试使用它来填充柱,它会产生一个错误,见下面的例子,其中的结果应始终是真实的,因为它的AA时期与自己进行比较。在这个例子中,我使用时间戳和时区,但我也试过这个没有时区,并为刚刚日期,所有这些失败,同样的错误。
CREATE TABLE date_table (
variable VARCHAR,
date_start TIMESTAMP WITH TIME ZONE,
date_end TIMESTAMP WITH TIME ZONE
)
;
INSERT INTO date_table VALUES ('max_date', TO_TIMESTAMP('2017/04/05
00:00:00', 'YYYY/MM/DD HH24:MI:SS'), TO_TIMESTAMP('2017/04/09 00:00:00',
'YYYY/MM/DD HH24:MI:SS'))
;
INSERT INTO date_table VALUES ('min_date', TO_TIMESTAMP('2016/04/06
00:00:00', 'YYYY/MM/DD HH24:MI:SS'), TO_TIMESTAMP('2016/04/15 00:00:00',
'YYYY/MM/DD HH24:MI:SS'))
;
INSERT INTO date_table VALUES ('min_date', TO_TIMESTAMP('2015/04/01
00:00:00', 'YYYY/MM/DD HH24:MI:SS'), TO_TIMESTAMP('2015/04/14 00:00:00',
'YYYY/MM/DD HH24:MI:SS'))
;
SELECT dt.*, (date_start, date_end) OVERLAPS (date_start, date_end) AS
overlap_test
FROM date_table dt
我得到的错误是如下:
An error occurred when executing the SQL command:
SELECT dt.*, (date_start, date_end) OVERLAPS (date_start, date_end) AS overlap_test
FROM date_table dt
[Amazon](500310) Invalid operation: Specified types or functions (one per INFO message) not supported on Redshift tables.;
Warnings:
Function ""overlaps"(timestamp without time zone,timestamp without time zone,timestamp without time zone,timestamp without time zone)" not supported.
Execution time: 0.07s
Statement 1 of 1 finished
1 statement failed.
红移是基于Postgres的8.0所以读取任何手册以后的版本是没有意义的。实际上阅读Postgres手册没有意义,你应该查阅Redshift手册:http://docs.aws.amazon.com/redshift/latest/dg/cm_chap_SQLCommandRef.html('overlaps'似乎没有记录在所有有) –
关于错误:你的第一个例子使用'DATE'值。在你的第二个例子中,你正在使用'TIMESTAMP'值。正如错误信息所示,这显然不受支持 –
Gotcha,我的错误,这里是从8.0列出的链接。 https://www.postgresql.org/docs/8.0/static/functions-datetime.html由于第一个例子返回一个结果,它显然在Redshift中可用,并且'OVERLAPS'出现在redshift保留列表中:http:它只是好奇,红移似乎没有其他功能的文件。 –