gpt4 book ai didi

sql - 检查一个值是否可以在 postgres 中被类型化为一个间隔

转载 作者:行者123 更新时间:2023-11-29 11:41:26 27 4
gpt4 key购买 nike

我有一个用户定义的值,它被输入到 postgres 数据库中。如果值输入正确,它应该能够转换为间隔,但是,某些值可能输入不正确,这将引发异常。

有没有办法检查一个值是否可以转换为一个区间?大致如下:

CASE
WHEN my_interval [can be cast as interval] THEN my_interval::interval
ELSE NULL
END as my_valid_interval

最佳答案

产生valid interval input 的格式种类繁多。 .因此,简单的答案是您不能简单地检查某个字符串是否是有效间隔。

可能最直接的解决方案是使用 PL/pgSQL 函数将字符串转换为 interval 并在出现任何错误时返回 null:

CREATE FUNCTION string_to_interval(s text) RETURNS interval AS $$
BEGIN
RETURN s::interval;
EXCEPTION WHEN OTHERS THEN
RETURN NULL;
END; $$ LANGUAGE plpgsql STRICT;

像这样使用它:

SELECT string_to_interval(my_interval) AS my_valid_interval
FROM ...

关于sql - 检查一个值是否可以在 postgres 中被类型化为一个间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36775814/

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