为啥要用 catch exception的方式判断日期。这样效率太低了。给你贴个网上现成的。CREATE FUNCTION ISDATE(yyyymmdd VARCHAR(8))RETURNS INTEGERLANGUAGE SQLCONTAINS SQLDETERMINISTICNO EXTERNAL ACTIONRETURNCASE WHEN TRANSLATE(yyyymmdd, '*', ' 0123456...
显示全部
为啥要用 catch exception的方式判断日期。这样效率太低了。
给你贴个网上现成的。
CREATE FUNCTION ISDATE(yyyymmdd VARCHAR(8))
RETURNS INTEGER
LANGUAGE SQL
CONTAINS SQL
DETERMINISTIC
NO EXTERNAL ACTION
RETURN
CASE
WHEN TRANSLATE(yyyymmdd, '*', ' 0123456789') = '' THEN
CASE
WHEN SUBSTR(yyyymmdd,1,4) BETWEEN '0001' AND '9999'
AND SUBSTR(yyyymmdd,5,2) BETWEEN '01' AND '12'
AND INT(SUBSTR(yyyymmdd,7,2)) BETWEEN 1
AND DAY(DATE(CHAR(INSERT(SUBSTR(yyyymmdd,1,6),5,0,'-')||'-01',10)) + 1 MONTH - 1 DAY)
THEN 1
ELSE 0
END
ELSE 0
END
@
收起