Улей - невозможно сравнить два столбца даты в одной таблице - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь сравнить два строковых столбца, в которых есть дата.

Ниже приведен пример набора данных

id start_dt   end_dt
1  2019-10-10 2019-10-10
2  2019-10-20 2020-01-01
3  2019-01-01 2020-01-01

Я хочу исключить записи, в которых start_dt и end_dt равны. Я перепробовал все приведенное ниже неравенство

select * from test where to_date(start_dt) <> to_date(end_dt)

select * from  test 
where to_date(from_unixtime(from_unixtimestamp(start_dt,'yyyy-mm-dd')))
  <>  to_date(from_unixtime(from_unixtimestamp(end_dt,'yyyy-mm-dd')))

Но ни один из них не работал на неравенство, где то же самое сработало бы и для равенства.

Ожидаемый результат

id start_dt   end_dt
2  2019-10-20 2020-01-01
3  2019-01-01 2020-01-01

любая помощь будет высоко оценена

1 Ответ

0 голосов
/ 14 февраля 2020

Поскольку у вас есть строковый тип для столбцов start_dt, end_dt, и мы можем напрямую привести к date type(yyyy-MM-dd) и получить только несовпадающие строки!

Попробуйте этот запрос:

select * from test where date(start_dt) <> date(end_dt);

Мы просто приводим к date type и сравниваем в предложении where.

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