从Postgres时间戳添加或减去时间

时间:2013-11-13 02:59:05

标签: ruby postgresql pg

我正在使用以下带有PG gem的ruby代码来返回Postgres“timestamp without timezone”格式的时间戳。我希望它返回值(-1小时)而不是返回当前值。

def get_latest_timestamp(id)
  conn1 = PGconn.open(:dbname => 'testdb')
  res = conn1.exec("SELECT MAX(time_of_search) FROM listings WHERE id=#{id}")
  res.values[0][0]
end

1 个答案:

答案 0 :(得分:4)

在Postgres中,您可以在时间戳中添加或减去时间间隔,以产生另一个时间戳,如here所述。

所以在这种情况下,假设time_of_search是时间戳,你可以做

"SELECT MAX(time_of_search) - INTERVAL '1 hour' FROM listings WHERE id=#{id}"