如何在Oracle中测试日期格式字符串是否为有效的日期格式字符串 [英] How to test if date format string is a valid date format string in Oracle

查看:247
本文介绍了如何在Oracle中测试日期格式字符串是否为有效的日期格式字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望用户能够输入日期格式字符串,以便他们可以指定他们希望如何显示/输入日期值.

I want users to be able to enter a date format string so they can specify how they want a date value to be displayed/entered.

如何验证此日期格式字符串,以便它们只能输入有效的Oracle日期格式字符串?

How can I validate this date format string so that they can enter only a valid Oracle date format strings?

推荐答案

您可以创建一个函数:

例如:

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

at the moment it will allow time formats too, however it would be simple to extend it to disallow a format that contains undesired formats e.g: hh hh24 mi ss

通过添加:(您可能希望先将格式字符串大写)

by adding: (you will probably want to uppercase your format string first)

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;

这篇关于如何在Oracle中测试日期格式字符串是否为有效的日期格式字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆