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