亚马逊红移日期比较

4
我遇到了一个错误:“指定的类型或函数(每个INFO消息一个)不支持Amazon Redshift表。”,但我不确定为什么,并且无法在其他任何地方找到支持。
我试图过滤或删除当前日期之后的行。 我创建了一个非常简单的示例。
表“tmp”有一列“date”,其中包含一个值为“2016-01-01”的行。
我想要删除这行,因为它是未来的日期。
所以我的查询将是:
DELETE FROM "tmp" WHERE TO_DATE((NOW()),'YYYY-MM-DD HH:MI:SS') < "date";

然而我遇到了错误:

"指定的类型或函数(每个 INFO 消息一个)不支持在 Amazon Redshift 表上使用。"

我还尝试将 "date" 列转换为 DATE 数据类型,但是出现了相同的错误。

我还尝试使用 "DATE_CMP" 函数进行 BOOLEAN 比较。

SELECT DATE_CMP((TO_DATE(NOW(),'YYYY-MM-DD HH:MI:SS')),"date"::DATE), "date" 
FROM "tmp"

但是它产生了相同的错误。

有人能帮我解决这个问题吗?我在Redshift文档中唯一能找到的是这里,但似乎并没有提到任何相关的内容。

1个回答

2

to_date(now(), ...) 没有意义。 now() 已经是一个 date 了,不需要再将其转换为一个日期。

条件“当当前日期在某个日期之后”可以写成:

delete from tmp
where current_date > "date";

这里记录了所有日期函数:http://docs.aws.amazon.com/redshift/latest/dg/Date_functions_header.html


date作为列的名称太糟糕了。首先因为它也是关键字,但更重要的是它没有说明该列包含的内容。它是一个开始日期?结束日期?到期日期?访问日期?发票日期?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接