在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';
補充:Postgresql中時間戳與日期的相互轉換(同樣適用於GreenPlum)
我就廢話不多說瞭,大傢還是直接看代碼吧~
--日期轉時間戳 SELECT EXTRACT(epoch FROM NOW()); SELECT EXTRACT(epoch FROM CAST('2017-12-06 00:17:10' AS TIMESTAMP)); --時間戳轉日期 SELECT TO_TIMESTAMP(1512490630)
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- PostgreSQL function返回多行的操作
- PostgreSQL自動更新時間戳實例代碼
- postgresql 實現replace into功能的代碼
- Postgresql創建新增、刪除與修改觸發器的方法
- postgresql 循環函數的簡單實現操作