如何将 Unix 纪元转换为时间戳

swe*_*ias 0 sql postgresql timestamp

我是 postgresql bot 的新手,而不是一般的 sql。我有一个表,我需要从中读取值,其中一列是一个unix时间戳,我想将其转换为更易于阅读的格式,因此我发现了这个:

SELECT lt,dw,up,to_char(uxts, 'YYYY-MM-DD HH24:MI:SS') 
from products;
Run Code Online (Sandbox Code Playgroud)

但这会产生错误:错误:多个小数点

我在这里迷路了。我确信有人可以告诉我该怎么做。该文档对我来说不太清楚。数据库是Postgresql 9.5。

小智 5

to_char()将数字、日期或时间戳转换为字符串,而不是相反。

你要to_timestamp()

将 Unix 纪元(自 1970-01-01 00:00:00+00 以来的秒数)转换为时间戳


所以只需将该函数应用到您的列上即可

SELECT lt,dw,up,to_timestamp(uxts) as uxts 
from products;
Run Code Online (Sandbox Code Playgroud)

这假设 uxts 是某种数字数据类型(integerbigintdouble precision