2015-12-29 3 views
3

Я получаю сообщение об ошибке «Указанные типы или функции (по одному на сообщение INFO) не поддерживаются в таблицах красного цвета Amazon». и я не уверен, почему и не нашел никакой поддержки нигде.Amazon Redshift Date Comparison

Я пытаюсь отфильтровать или удалить строки, где текущая дата после определенной даты. Я создал очень простой пример.

Таблица «tmp» имеет одну колонку «дата» с одной строкой со значением «2016-01-01».

Я хочу удалить строку, потому что это дата, которая в будущем.

Так что мой запрос будет:

DELETE FROM "tmp" WHERE TO_DATE((NOW()),'YYYY-MM-DD HH:MI:SS') < "date"; 

Однако я получаю ошибку:

"Specified types or functions (one per INFO message) not supported on Amazon Redshift tables."

Я также попытался литья столбец «Дата» на сегодняшний день тип данных, но ту же ошибку.

Я также попытался функция "DATE_CMP" сделать булево сравнение

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

но получает ту же ошибку.

Не мог бы кто-нибудь помочь мне, почему это так? Единственное, что я могу найти в документации Redshift, - here, но, похоже, это не говорит об актуальности.

ответ

1

to_date(now(), ...) не имеет никакого смысла. now()is уже date нет необходимости преобразовывать его в один.

условие "где текущая дата после определенной даты" можно записать в виде:

delete from tmp 
where current_date > "date"; 

Все функции даты описаны здесь: http://docs.aws.amazon.com/redshift/latest/dg/Date_functions_header.html


date является ужасное имя для столбца. Для одного, потому что это также ключевое слово, но, что более важно, он не документирует то, что содержит столбец. Дата начала? Дата окончания? Срок? Дата визита? Дата выставления счета?