如何在psycopg2中使用@>运算符

时间:2018-12-16 14:40:01

标签: python-3.x psycopg2 psql

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 | 

1 个答案:

答案 0 :(得分:0)

numrange类型要求所检查的值至少具有一个小数点。

     select price,weight_kgs @>1.0 from weight_categories;

将起作用。 如果您正在从python程序中的用户获取值。 您可以使用,

       num = float(value)

其中的值可以是1或任何其他整数。