【发布时间】:2016-02-26 04:58:54
【问题描述】:
当我从Postgresql 数据库查询exponent value 时遇到问题。
当我查询如下:
select t,v from c1.hour where f = 22 and date_trunc('day',t - '1 hour'::INTERVAL) = '2016-02-26 00:00:00' order by t ;
t | v
---------------------+-------------
2016-02-26 02:00:00 | 1.45642e+09
它返回指数值。
并且我将指数值扩展如下:
select t,to_char(v, '99999999999999999D99') from c1.hour where f = 22 and date_trunc('day',t - '1 hour'::INTERVAL) = '2016-02-26 00:00:00' order by t ;
t | to_char
---------------------+--------------------
2016-02-26 02:00:00 | 1456418944
但是当我使用ActiveRecord 获取数据时,结果似乎不正确。
#<Aws1:0x00000007940ca8 t: Fri, 26 Feb 2016 02:00:00 JST +09:00, f: 22, v: 1456420000.0>
我的预期结果是: 1456418944 而不是 1456420000.0。
我不明白为什么Rails 会返回这个结果。请问我能得到一些帮助吗?
一些信息:我用过Rails 4.2.5、Ruby 2.2.3和gem 'pg', '~> 0.15'
更新:这是小时表
aws1=# \d hour
Table "c1.hour"
Column | Type | Modifiers
--------+-----------------------------+-----------
t | timestamp without time zone | not null
f | smallint | not null
h | smallint | not null
v | real |
q | smallint |
Indexes:
"hour_key" PRIMARY KEY, btree (t, f, h)
【问题讨论】:
-
感谢您的回复。是的,
Aws1是表 c1.hour 的模型。我的第一个查询与此值相同。但我想获得真正的价值作为第二个查询。 -
是的,我只输入
Aws1.where(f: 22).order(t: :desc).first,它会返回上面的记录。 -
列
v是什么类型?你能告诉我们\d c1.hour的输出吗? -
抱歉,我更新了我的餐桌时间。请刷新您的浏览器。谢谢。
标签: ruby-on-rails ruby postgresql ruby-on-rails-4