/* 在編寫GreenPlum函數的過程當中,遇到要判斷字符串是不是數字和日期格式的狀況,基於GreenPlum和postgresql的親緣關係,找到了下面兩個函數。 */ --1.判斷字符串是不是數字 CREATE OR REPLACE FUNCTION isnumeric(txtStr VARCHAR) RETURNS BOOLEAN AS $$ BEGIN RETURN txtStr ~ '^([0-9]+[.]?[0-9]*|[.][0-9]+)$'; END; $$ LANGUAGE 'plpgsql'; --2.判斷傳入的字符串是不是日期格式 CREATE OR REPLACE FUNCTION isDate(dateStr VARCHAR) RETURNS BOOLEAN AS $$ BEGIN IF (dateStr IS NULL) THEN RETURN FALSE; END IF; PERFORM dateStr::timestamp; RETURN TRUE; EXCEPTION WHEN others THEN RETURN FALSE; END; $$ LANGUAGE 'plpgsql';