2016-08-23 2 views
-1

У Vertica DB есть столбец под названием created_ts, который имеет записи, как 3/15/2016, 03/15/2016, 2016/03/15 и 15/03/2016. И я хочу отфильтровать записи, которые не соответствуют формату DD/MM/yyyy.Как найти недопустимые записи даты в DB Vertica?

+0

Не могли бы вы показать нам свой текущий запрос? –

+0

У меня есть запрос для Teradata DB. который имеет таблицу SYS_CALENDAR.CALENDAR, чтобы я мог присоединиться к этой таблице и получить результат. Ниже мой граф Сель запрос (*) - (SELECT COUNT (*) FROM DP_VEDW_NGN.STG_SITE_CATALYST LEFT OUTER JOIN SYS_CALENDAR.CALENDAR на (CALENDAR_DATE (FORMAT 'YYYY-MM-DD') (CHAR (10))) = A.date_time И A.date_time IS NOT NULL) как Invalid_Date, 'date_time' AS COLUMN_NAME от DP_VEDW_NGN.STG_SITE_CATALYST – Midhun

ответ

0

Это должно идентифицировать большинство строк, которые являются недопустимыми датами DD/MM/YYYY, хотя вам придется добавить немного сложнее, если вы хотите отменить такие недействительные даты с 31 апреля (или 29 февраля на не- прыжок лет).

select * from my_table 
where not (translate(created_ts,'','9999999999')='99/99/9999' 
      and split_part(created_ts,'/',1) between '01' and '31' 
      and split_part(created_ts,'/',2) between '01' and '12') 
+0

Запрос, не позволяющий мне переводить, потому что created_ts имеет временную метку в нем. «Split_part (created_ts, '/' , 2) между '01' и '12') ', который не возвращает никакого значения. но та же самая линия работает для 'split_part (created_ts,'/', 2) между' 01 'и' 31 ')'. к сожалению, у меня нет никаких недопустимых записей за месяц. – Midhun

+0

Я изменил запрос как 'select * from (SELECT DATE_PART ('month', created_ts) || '/' || DATE_PART ('day', created_ts) || '/' || DATE_PART ('year', created_ts) as created_ts от ROYALTY_STG.STG_DL_FILES) где Not (split_part (created_ts, '/', 1) между '01' и '12' и split_part (created_ts, '/', 2) между '01' и ' 31 ' и split_part (created_ts,'/', 3) между' 2000 'и' 9999 ') '. Месячная часть не запрашивает никаких записей между 01 и 12. – Midhun

Смежные вопросы