ORACLE - запрос для получения записей, которые не в определенном формате даты - PullRequest
0 голосов
/ 03 июля 2018

У меня есть таблица со значениями:

-----------------------
ID  Date
-----------------------
1   2015-06-26
2   1974-05-29 00:00:00
3   2012-01-30 00:00:00
4   2011-12-03 00:00:00
5   1994-06-12
6   2016-04-01
-----------------------

Мне нужно получить идентификаторы НЕ в формате 1974-05-29 00:00:00.

т.е. мой вывод должен быть:

-----------------------
ID  Date
-----------------------
1   2015-06-26
5   1994-06-12
6   2016-04-01
-----------------------

Пожалуйста, помогите.

UPDATE : Тип данных столбца даты : VARCHAR2 (128 CHAR)

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Вам нужно только проверить формат, вы можете использовать:

select *
from yourTable
where not regexp_like("Date", '\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}')

Обратите внимание, что это не проверяет содержимое, поэтому строка типа '2011-12-03 99:99:99' будет считаться правильной.

0 голосов
/ 03 июля 2018

Попробуйте это

Select * from my_table where instr(date, '00:00:00') <= 0

or 

Select * from my_table where length(date) = 10

Примечание: я не уверен, почему вы поддерживаете дату в строковом формате. Лучше попробуйте перевести в формат даты (если это возможно)

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