Как проверить, является ли строка формата даты допустимой строкой формата даты в Oracle - PullRequest
3 голосов
/ 02 ноября 2011

Я хочу, чтобы пользователи могли вводить строку формата даты, чтобы они могли указать, как они хотят, чтобы значение даты отображалось / вводилось.

Как проверить эту строку формата даты, чтобы они могли вводить только допустимые строки формата даты Oracle?

1 Ответ

7 голосов
/ 02 ноября 2011

вы можете создать функцию:

например:

FUNCTION is_valid_date_format ( 
    p_format IN VARCHAR2 ) 
RETURN BOOLEAN IS
    l_date VARCHAR2(100) := NULL;
BEGIN
    l_date := TO_char( sysdate, p_format );
    RETURN TRUE;
EXCEPTION
    WHEN OTHERS THEN
        RETURN FALSE;
END is_valid_date_format;

и используйте его вот так

IF is_valid_date_format('dd/mm/yyyy') THEN

на данный момент он также будет разрешать форматы времени, однако было бы просто расширить его, чтобы запретить формат, который содержит нежелательные форматы, например: hh hh24 mi ss

добавив: (вы, вероятно, захотите сначала набрать строку формата в верхнем регистре)

IF INSTR(p_format,'HH')>0 OR INSTR(p_format,'HH24')>0 
OR INSTR(p_format,'MI')>0  OR INSTR(p_format,'SS')>0 THEN
    RETURN FALSE
END IF;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...