/* Current time */
select now(); -- returns timestamp
/* Epoch from current time;
Epoch is number of seconds since 1970-01-01 00:00:00+00 */
select extract(epoch from now());
/* Get back time from epoch */
-- Option 1 - use to_timestamp function
select to_timestamp( extract(epoch from now()));
-- Option 2 - add seconds to 'epoch'
select timestamp with time zone 'epoch'
+ extract(epoch from now()) * interval '1 second';
/* Cast timestamp to date */
-- Based on Option 1
select to_timestamp(extract(epoch from now()))::date;
-- Based on Option 2
select (timestamp with time zone 'epoch'
+ extract(epoch from now()) * interval '1 second')::date;
SELECT t.*,
to_timestamp(cast(t.prev_fire_time/1000 as bigint)) as prev_fire_time,
to_timestamp(cast(t.next_fire_time/1000 as bigint)) as next_fire_time,
to_timestamp(cast(t.start_time/1000 as bigint)) as start_time
FROM public.qrtz_triggers t;
6条答案
按热度按时间wqsoz72f1#
使用
to_timestamp
函数,然后将时间戳转换为date
您可以使用更标准的
cast
,而不是::
更多详情:
在您的情况下:
PostgreSQL Docs
a9wyjsp72#
为我工作
hwamh0ep3#
在Postgres 10上:
SELECT to_timestamp(CAST(epoch_ms as bigint)/1000)
wf82jlnq4#
上面的解决方案不适用于PostgreSQL上的最新版本。我发现这种方法来转换以数字和整数列类型存储的纪元时间是在PostgreSQL 13:
有关详细说明,请访问https://www.yodiw.com/convert-epoch-time-to-timestamp-in-postgresql/#more-214
rqqzpn5f5#
这对我很有效:
carvr3hs6#
GNU
date
时代以来的秒数:这适用于PostgreSQL 11: