box4
@box4

Необходим поменять формат времени в запросе, как?

Добры день, помогите пожалуйста поменять формат времени с mysql на postgresql
select h.name AS host_name, i.name AS item_name, i.key_ as item_key, FROM_UNIXTIME(hs.clock) AS last_time, hs.value, hs.logeventid
from 
	hosts h 
	join items i on h.hostid = i.hostid
	join history_log hs on i.itemid = hs.itemid
where hs.clock > UNIX_TIMESTAMP() - 86400 and i.hostid = '10458' and hs.logeventid = '4625'
order by last_time, item_name
  • Вопрос задан
  • 250 просмотров
Решения вопроса 2
Melkij
@Melkij
PostgreSQL DBA
формат времени с mysql на postgresql

done by sql design.
Форматы даты, времени, датывремени эквиваленты. И, емнип, вовсе стандартны для SQL в целом.
Если вы пихаете данные в неподходящий тип данных вместо штатного для обеих субд timestamp - то вас будут ждать сюрпризы рано или поздно. Это как бы само собой разумеется.

Если ваш clock, как очевидно по комментарию в другом ответе, int4 является количеством секунд с начала этой эпохи, то привести unixtime к циферке-количеству-секунд-этой-эпохи можно через extract:
hs.clock > extract(epoch from timestamp 'yesterday')

Привести циферку количества секунд в этой эпохе к timestamp можно функцией to_timestamp.
Ответ написан
@gill-sama
UNIX_TIMESTAMP() - 86400 = current_timestamp - '1 day'::interval
ну а FROM_UNIXTIME(hs.clock) прочтите это
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы