Проверьте неверную дату в Amazon Redshift - PullRequest
0 голосов
/ 10 октября 2019

Я имею дело с Amazon Redshift.

У меня есть столбец даты в формате YYYYMMDD. Мне нужно написать запрос для проверки недопустимых дат:

  1. Каждый месяц должен иметь соответствующие дни, например: если в июне часть даты равна 31, верните столбец.
  2. Когда дата29 февраля для не високосного года, затем верните столбец

1 Ответ

0 голосов
/ 10 октября 2019

Нет такого понятия, как «столбец даты в формате ГГГГММДД» - в столбцах даты красного смещения есть тип данных DATE, TIMESTAMP или TIMESTAMPTZ, который не имеет формата;внутренне это числовое представление момента времени, и ваш инструмент запросов или клиентское приложение форматирует его в соответствии с желаемой культурой / регионом, в котором оно отображается, или на основе выраженного пользователем языка и т. д.

Чтоу вас есть строка или целочисленный столбец, который содержит некоторые числа, похожие на дату, если вы понимаете, что первые 4 цифры представляют год ... и т. д.

И теперь вы спрашиваете, как обеспечить это«вещь, которая выглядит так, как будто она может представлять дату» является действительной датой?

Используйте правильный тип данных DATE / TIME / TIMESTAMPTZ для столбца. Тогда вы тоже сможете выполнять математику, недопустимых значений, он также может выполнять операции на основе часового пояса, он будет сортировать правильно, независимо от культуры, и никто никогда не будет смотреть на «20121211» и думать, что это«20 декабря 1211 года». Или, может быть, это 11 декабря 2012 года. Или, может быть, это 12 ноября 2012 года. Или ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...