2010-05-07 83 views
0

我需要运行对psql的和做的命令行:打印出时间戳数量,而不是人类可读

psql database -c "select date_trunc('day', start) as date, avg(finish - start) as duration from things group by date order by date;" 

但问题是这给了我人类可读的输出,又名:

date   | duration 
---------------------+----------------- 
2010-01-11 00:00:00 | 00:24:13.826822 
2010-01-12 00:00:00 | 00:15:42.984878 
2010-01-13 00:00:00 | 00:15:37.117834 
2010-01-14 00:00:00 | 00:13:27.868552 
2010-01-15 00:00:00 | 00:09:16.018057 
2010-01-16 00:00:00 | 00:06:39.213929 

我想要的是以秒(或毫秒)为单位的双精度时间戳。我已阅读文档,但无法弄清楚。

回答

1

我读了你可以用

SELECT date_part('epoch', now()) 

做给UNIX时间戳

所以你的情况

SELECT date_part('epoch', date_trunc('day', start) as date), 
     date_part('epoch', avg(finish - start)) as duration 
FROM things 
GROUP by date 
ORDER by date; 

见Postgres的

Date and time functions and operations
相关问题