在 PostgreSQL 中,可以使用以下方法來(lái)驗(yàn)證 datetime 數(shù)據(jù)的有效性:
to_timestamp()
來(lái)轉(zhuǎn)換字符串為 timestamp 類型,并檢查是否轉(zhuǎn)換成功。如果轉(zhuǎn)換出錯(cuò),則說(shuō)明字符串格式不正確。SELECT to_timestamp('2022-12-31 23:59:59', 'YYYY-MM-DD HH24:MI:SS');
to_date()
和 to_time()
來(lái)分別轉(zhuǎn)換日期和時(shí)間部分,并檢查結(jié)果是否為 NULL。如果有一部分轉(zhuǎn)換結(jié)果為 NULL,則說(shuō)明輸入的字符串格式不正確。SELECT to_date('2022-12-31', 'YYYY-MM-DD'), to_time('23:59:59', 'HH24:MI:SS');
CAST
或 CONVERT
函數(shù)將字符串轉(zhuǎn)換為 datetime 類型,并檢查結(jié)果是否為 NULL。如果轉(zhuǎn)換出錯(cuò),則說(shuō)明字符串格式不正確。SELECT CAST('2022-12-31 23:59:59' AS TIMESTAMP);
SIMILAR TO
或 regexp_matches
函數(shù)來(lái)檢查字符串是否符合 ISO 8601 格式。SELECT '2022-12-31 23:59:59' SIMILAR TO '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$';
這些方法可以幫助您驗(yàn)證 datetime 數(shù)據(jù)的有效性,并確保數(shù)據(jù)符合要求的格式。