判定一個字符串是否為有效時間的函數,為有效時間則返回1,不是有效時間則返回0.
CREATE OR REPLACE FUNCTION is_date(parameter VARCHAR2) RETURN NUMBER IS val DATE; BEGIN val := TO_DATE(NVL(parameter, 'a'), 'yyyy-mm-dd hh24:mi:ss'); RETURN 1; EXCEPTION WHEN OTHERS THEN RETURN 0; END;
具體例子,可以直接使用:
alter session force parallel ddl parallel 8; create table TT as select t.id, floor(months_between(sysdate,to_date(t.birthday,'yyyymmdd'))/12) age from TT_WXTRAN t where is_date(t.birthday)!=0;
FIND
假設你字符串在A1,要判斷其中是否有"B"字符
=IF(ISERROR(FIND("B",A1)),"無","有")
//很簡單啊,親測
public static void main(String[] args){
System.out.println(isDateExist("2010-02-31"));
}
public static boolean isDateExist(String dtStr){//2010-02-31
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date d=null;
try {
d = sdf.parse(dtStr);
} catch (ParseException e) {
e.printStackTrace();
}
String result=sdf.format(d);//判斷轉換前後兩個字符串是否相等即可知道合不合法
return result.equals(dtStr);
}
參考資料:還有其他問題的話,給我發百度消息