Psycopg2一直给我以下错误:
psycopg2.ProgrammingError: operator does not exist: numrange @> integer
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts
我想从我的postgres db中的表中获得一个值(例如1)的范围,该表的列为int4range类型。
select price,weight_kgs @>1 from weight_categories;
注意:当我在终端中使用代码时,代码就会运行
这是我的表的结构:
Column | Type | Collation | Nullable |
Default
------------+----------+-----------+----------+-------------------
-----------------------------------
weight_id | integer | | not null |
nextval('weight_categories_weight_id_seq'::regclass)
weight_kgs | numrange | | not null |
price | integer | | not null |
答案 0 :(得分:0)
numrange类型要求所检查的值至少具有一个小数点。
select price,weight_kgs @>1.0 from weight_categories;
将起作用。 如果您正在从python程序中的用户获取值。 您可以使用,
num = float(value)
其中的值可以是1或任何其他整数。