如何在Oracle中判断一个字符串是否为日期(oracle判断是否是日期)
在Oracle中,我们可以使用TO_DATE()来判断一个字符串是否为日期。
TO_DATE()函数可以将一个字符串转换成一个日期类型,如果输入的字符串不符合日期格式,或不能被转换成日期,将会产生一个错误。我们可以利用这一点来判断一个字符串是否为日期:
例如,我们需要判断一个字符串 str 是否为日期:
首先,我们定义一个错误处理的块:
BEGIN
NULL;
EXCEPTION
WHEN OTHERS THEN
err_message := SQLCODE || ‘ ‘ || SQLERRM;
END;
接下来,定义一个变量err_message,用来存放错误信息:
customer_id VARCHAR2(30);
err_message VARCHAR2(1000);
最后,我们尝试将字符串str转换为日期:
BEGIN
TO_DATE(str);
EXCEPTION
WHEN OTHERS THEN
err_message := SQLCODE || ‘ ‘ || SQLERRM;
END;
如果err_message 不为空,那么说明str不是一个合法的日期字符串,反之则是。
举个例子,str为’2019-04-20’, 那么err_message 将为空,而’2019-04-30’将不会返回空结果,因为实际上4月没有30号。