我收到错误消息“Amazon Redshift表不支持指定的类型或函数(每个INFO消息一个)。”我不确定为什么也不能在其他地方找到任何支持。
我正在尝试过滤或删除当前日期在特定日期之后的行。我创建了一个非常简单的例子。
表“tmp”有一列“date”,其中一行的值为“2016-01-01”。
我想删除该行,因为它是将来的日期。
所以我的查询是:
DELETE FROM "tmp" WHERE TO_DATE((NOW()),'YYYY-MM-DD HH:MI:SS') < "date";
然而我收到错误:
“Amazon Redshift表格不支持指定的类型或功能(每个INFO消息一个)。”
我还尝试将“date”列转换为DATE数据类型但是同样的错误。
我还尝试使用函数"DATE_CMP"进行BOOLEAN比较
SELECT DATE_CMP((TO_DATE(NOW(),'YYYY-MM-DD HH:MI:SS')),"date"::DATE), "date"
FROM "tmp"
但是产生了同样的错误。
有人可以帮我解释这是为什么吗?我在Redshift文档中唯一能找到的是here,但它似乎没有提到任何相关的内容。
答案 0 :(得分:2)
to_date(now(), ...)
毫无意义。 now()
已经是date
,无需将其转换为一个。
条件&#34; 当前日期在特定日期之后&#34;可以写成:
delete from tmp
where current_date > "date";
所有日期函数都记录在此处:http://docs.aws.amazon.com/redshift/latest/dg/Date_functions_header.html
date
是列的可怕名称。一个是因为它也是一个关键字,但更重要的是它没有记录列包含的内容。开始日期?结束日期?截止日期?访问日期?发票日期?