Postgresql是否有一个TIMESTAMPDIFF()等价的?
我知道我可以减去两个时间戳获得一个postgresql INTERVAL。我只想要用INT表示的以小时表示的两个时间戳之间的差异。
我可以在MysqL这样做:
TIMESTAMPDIFF(HOUR,links.created,NOW())
我只需要两个时间戳之间的差异,表示为整数。
解决方案适用于我:
SELECT "links_link"."created","links_link"."title",(EXTRACT(EPOCH FROM current_timestamp - "links_link"."created")/3600)::Integer AS "age" FROM "links_link"
第一件事出现了
原文链接:https://www.f2er.com/postgresql/193536.htmlEXTRACT(EPOCH FROM current_timestamp-somedate)/3600
可能不漂亮,但解锁的道路。如果定义了按间隔划分的间隔,可能更漂亮。
编辑:如果你想要它大于零使用abs或最大(…,0)。无论哪一种适合你的意图。
编辑:我没有使用年龄的原因是年龄与单个参数,引用文档:从current_date减去(在午夜)。这意味着你不会得到一个准确的“年龄”,除非运行在午夜。现在几乎是1am这里:
select age(current_timestamp); age ------------------ -00:52:40.826309 (1 row)