Как сравнить дату с форматом даты на оракуле - PullRequest
0 голосов
/ 13 декабря 2018

Как мы можем сравнить дату с форматом в Oracle?Примерно так: если MyDate в формате DD MONTH YYYY THEN /....

elsif MyDate в формате YYYY-MONTH-DD Тогда ...

EDIT: Мои даты вvarchar2 и я хочу, чтобы они оставались такими.Я просто хочу знать, как написать регулярное выражение, которое будет представлено, например, 10 октября 2010 года.

Возможно ли это?Если это регулярное выражение, как бы его формат был, пожалуйста

1 Ответ

0 голосов
/ 13 декабря 2018

Повторяя то, что было упомянуто в комментариях к вашему вопросу, лучше всего иметь фактическое поле типа DATE вместо VARCHAR2, а если вам нужны определенные форматы отображения, сохраните их в другом поле в качестве шаблона формата.,Тем не менее, вы можете использовать REGEXP_LIKE для проверки формата, используя шаблоны в приведенном ниже примере.

with dateinfo as (
    select 1 as id, '2018-MARCH-10' as dtString from dual
    union all
    select 2 as id, '10 MARCH 2018' as dtString from dual ) 
select id, dtString, 
    case 
        when regexp_like(dtString, '^[0-9]{4}-.[a-zA-Z]{3,}-.[0-9]{1,2}$') then 'format1'
        when regexp_like(dtString, '^[0-9]{1,2} [a-zA-Z]{3,} [0-9]{4}$') then 'format2'
        else 'no format'
    end as dtFormat 
from dateinfo;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...