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

HML*_*ude 1 ruby postgresql pg

我将以下ruby代码与PG gem一起使用,以返回Postgres“无时区的时间戳”格式的时间戳。我不希望返回当前值,而是希望它返回值(-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
Run Code Online (Sandbox Code Playgroud)

Sar*_*rah 6

在Postgres的,可以增加或减少的时间间隔,或从时间戳产生另一个时间戳,如所描述的在这里

因此,在这种情况下,假设time_of_search是一个时间戳,您可以

"SELECT MAX(time_of_search) - INTERVAL '1 hour' FROM listings WHERE id=#{id}"
Run Code Online (Sandbox Code Playgroud)