1. 程式人生 > >postgresql資料庫中判斷是否是數字和日期時間格式函式

postgresql資料庫中判斷是否是數字和日期時間格式函式

/*
在編寫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';