我需要检查字符串的格式是否为time**HH24:MI:SS
**。
我做了一个函数
CREATE OR REPLACE FUNCTION check_time(myStr VARCHAR2) RETURN INT IS
p_temp DATE;
BEGIN
p_temp := TO_DATE(myStr, 'HH24:MI:SS');
RETURN 1;
EXCEPTION WHEN others THEN RETURN 0;
END;
但是TO_DATE()
在得到0和23之间的数字时没有失败;我需要字符串的确切格式**HH24:MI:SS
**与冒号。
我正在寻找使用Oracle日期/时间格式的解决方案。
1条答案
按热度按时间bqujaahr1#
如果要防止Oracle对转换应用宽松规则,则可以添加“FX”格式修饰符:
在最新版本的Oracle中,您不需要自己的函数,可以使用
validate_conversion()
,它将给予相同的0/1结果:fiddle以及一些有效和无效值示例。