在Postgres中截断日期(最新版本)

时间:2016-07-21 13:02:48

标签: database postgresql

我的posgres db中有不同的时间戳。有了时间戳,我的意思是自1970年以来的unix时间保存为bigint。

现在我需要将自1970年以来的时间戳条纹缩小到几天。例如:1469059200000(今天:凌晨2:00应该变成1469052000000(今天:00:00)

我已经在pgadmin

中尝试了这个
Select date_trunc('day', rp.timestamp) from rollup_days as rp

但是刚收到这个错误。错误:函数date_trunc(unknown,bigint)不存在

1 个答案:

答案 0 :(得分:2)

bigint不是"时间戳",因此您必须先将该号码转换为日期,然后才能对其应用date_trunc()

Select date_trunc('day', to_timestamp(rp.timestamp)) 
from rollup_days as rp;

要将时间戳转换回bigint,请使用extract()

Select extract(epoch from date_trunc('day', to_timestamp(rp.timestamp)))
from rollup_days as rp;