PostgreSQL 基础:如何进行Unix Time 和 Timestamp 的时间转换

网友投稿 904 2022-10-30

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

PostgreSQL 基础:如何进行Unix Time 和 Timestamp 的时间转换

在 PostgreSQL 数据库中,时间的表示方法非常丰富和成熟,Unix Time 在 Pg 数据库中同样存在,那么怎样进行 Unix Time 和 Timestamp 的时间转换呢?

获取 Unix Time ,可以用如下一些方法:

enmotech=# select extract(epoch from now());    date_part     ------------------ 1568627888.43009(1 row)enmotech=# select date_part('epoch',current_timestamp)::int; date_part  ------------ 1568627897(1 row)

将这个时间转换为常规时间:

enmotech=# select timestamp 'epoch'+ 1568627897 * interval '1 second';      ?column?       --------------------- 2019-09-16 09:58:17(1 row)

注意,如果不加时区,以上转换会因为时区而不同。

增加时区之后,转换就会回归正常:

enmotech=# show Timezone; TimeZone ---------- PRC(1 row)enmotech=# SELECT TIMESTAMP WITH Time Zone 'epoch' + 1568627397 * interval '1 second';        ?column?        ------------------------ 2019-09-16 17:49:57+08(1 row)

通过 to_timestamp 函数也可以进行直接简便的转换:

enmotech=# select to_timestamp(1568627897);      to_timestamp      ------------------------ 2019-09-16 17:58:17+08(1 row)

上一篇:软件测试之渗透测试
下一篇:影响模糊测试效果的一些关键因素
相关文章

 发表评论

暂时没有评论,来抢沙发吧~