Как получить интервальные результаты из postgresql в виде целых чисел в рельсах

Я запускаю запрос в рельсах, чтобы получить задержку между двумя событиями в минутах. У меня это хорошо работает следующим образом;

orders.select("extract(epoch from (orders.procedure_time - orders.call_time)) / 60 AS delay").map &:delay

где заказы - это существующий объект ActiveRecord::Relation

Пока это работает абсолютно нормально, за исключением того, что я возвращаю массив строк, а не целых чисел. В Ruby достаточно легко разобраться - я сделал следующее:

orders.select("extract(epoch from (orders.procedure_time - orders.call_time)) / 60 AS delay").map{|x| x.delay.to_i}

Это подойдет, но мне просто интересно, есть ли способ получить целые числа непосредственно из postgres? Кажется, что изначально он должен иметь целые числа, но они преобразуются в строки, которые я затем должен преобразовать обратно, что имеет запах неэлегантности.


person brad    schedule 15.09.2013    source источник
comment
Я предполагаю, что драйвер pgsql преобразует целые числа в строки. Можете ли вы попробовать выполнить "select 1::int as id;" и посмотреть, какой тип возвращаемого результата?   -  person Antoan Milkov    schedule 15.09.2013
comment
@AntoanMilkov: все, что не является столбцом таблицы, будет отображаться в виде строки.   -  person mu is too short    schedule 15.09.2013
comment
возможный дубликат sums return String, только с postgresql или, по крайней мере, это другой лицом к одной и той же основной проблеме.   -  person mu is too short    schedule 15.09.2013
comment
Хорошо, спасибо. Тогда похоже, что другого выхода нет.   -  person brad    schedule 15.09.2013