我希望用户能够输入日期格式字符串,以便他们可以指定他们希望如何显示/输入日期值。
如何验证此日期格式字符串,以便它们只能输入有效的Oracle日期格式字符串?
答案 0 :(得分:7)
你可以创建一个函数:
e.g:
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;