gpt4 book ai didi

postgresql - 识别 postgresql 中的无效日期

转载 作者:行者123 更新时间:2023-11-29 11:54:39 24 4
gpt4 key购买 nike

我正在尝试将脏输入解析到 postgres 表中。我遇到一个问题,“日期”字段偶尔包含非日期,例如“00000000”或“20100100”。 pg 拒绝接受这些,这是正确的。

有没有办法让 postgres 识别无效日期(或者只识别有效日期,如果效果更好的话),这样我就可以替换一个合理的默认值?

(我考虑过构建一个表格列出我愿意接受的日期,并在子选择中使用它,但这看起来非常不雅。)

干杯,

于尔根

最佳答案

http://www.tek-tips.com/viewthread.cfm?qid=1280050&page=9

比上述更通用的方法:

create function safe_cast(text,anyelement) 
returns anyelement
language plpgsql as $$
begin
$0 := $1;
return $0;
exception when others then
return $2;
end; $$;

这样使用:

select safe_cast('Jan 10, 2009', '2011-01-01'::timestamp)
select safe_cast('Jan 10, 2009', null::timestamp)

归功于#postgresql irc channel 的友好伙伴。 :)

关于postgresql - 识别 postgresql 中的无效日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6730095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com