PostgreSQL Timestamp вычитание - хотите результат в часах - PullRequest
1 голос
/ 26 мая 2011

Таблица:

create table examp (
  ID   integer,
  val1 timestamp,
  val2 timestamp,
  primary key(ID)
);

insert into examp (ID,val1,val2) values (1,'2011/5/26 10:00:00','2011/5/26 14:00:00');
insert into examp (ID,val1,val2) values (2,'2011/5/26 14:00:00','2011/5/25 14:00:00');

Теперь я хочу узнать разницу между двумя метками времени в часах> Я пытался:

 SELECT EXTRACT(hour FROM AGE(val1,val2)) 
   FROM examp 
  WHERE id = 2 

... но это дает мне 0!

1 Ответ

2 голосов
/ 26 мая 2011

Вы извлекаете компонент часов, а не количество часов. Поскольку временная метка находится на расстоянии 24 часа, разница часового поля действительно равна нулю.

Предположительно, вы можете extract days * 24 + extract hours получить необходимую информацию. Пока это не месяцы или годы друг от друга ... Вы также можете перейти в эпоху, а затем / 3600.

select extract(epoch from age(val1,val2))/3600 from examp where id=2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...