как использовать @> оператор с psycopg2 - PullRequest
0 голосов
/ 16 декабря 2018

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

Я хотел бы получить диапазон, в котором значение (например, 1) падает из таблицы в моей базе данных postgres, в которой есть столбец стип 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 голосов
/ 16 декабря 2018

тип numrange требует, чтобы проверяемое значение имело хотя бы одну десятичную точку.Это

     select price,weight_kgs @>1.0 from weight_categories;

будет работать.Если вы получаете значение от пользователя в вашей программе Python.Вы можете добавить десятичные точки, используя,

       num = float(value)

Где значение может быть 1 или любое другое целое число.

...