Разница между переменной временной метки и переменной времени

У меня есть следующая таблица в postgresql (table1):

timestamp1 timestamp without time zone NOT NULL,
variable1 integer,
timestamp2 timestamp without time zone NOT NULL

Я хочу вычислить timestamp2.

Обратите внимание, что переменная 1 имеет тип integer в таблице 1, но на практике это временная переменная, определенная в часах

Временная метка2 определяется разностью timestamp1 и variable1 (timestamp2 = timestamp1 - variable1)

Например,

2013-02-06 07:00:00 - 5 = 2013-02-06 02:00:00
2013-02-06 09:00:00 - 12 = 2013-02-05 21:00:00 
2013-02-06 12:00:00 - 4.5 = 2013-02-06 07:30:00

Как это сделать (timestamp2) в postgresql?

2 ответа

select timestamp1 - interval '1 hour' * variable1
from table1


Postgres понимает число как время:

  • 5 → 05:00:00
  • 12 → 12:00:00
  • 4.5 → 04:30:00

licensed under cc by-sa 3.0 with attribution.