Fork me on GitHub

PostgreSQL - 怎么将时间转换成秒

保留原来的毫秒值

1
select extract(epoch from '03:21:06.678'::time);

这个extract(epoch from )函数得到的是时间是秒单位,如果需要毫秒值就直接乘以1000:

1
select extract(epoch from now())*1000;

去掉原来的毫秒值

向下取整函数floor()

1
select floor(extract(epoch from '03:21:06.678'::time));

向上取整函数ceil()ceiling(),这两个一样的

1
2
select ceil(extract(epoch from '03:21:06.678'::time));
select ceiling(extract(epoch from '03:21:06.678'::time));

四舍五入函数round()

1
select round(extract(epoch from '03:21:06.678'::time));

将两个日期间的时间转换为秒值

1
2
3
4
select extract(epoch from(('2018-12-18 00:00:10'::timestamp - '2018-12-18 00:00:00')));
select extract(epoch from(('2018-12-18 00:00:10' - '2018-12-18 00:00:00'::timestamp)));
select extract(epoch from(('2018-12-18 00:00:10' - timestamp'2018-12-18 00:00:00')));
select extract(epoch from((timestamp'2018-12-18 00:00:10' - '2018-12-18 00:00:00')));

上边四种写法都可以。

epoch新纪元时间

新纪元时间 Epoch 是以1970-01-01 00:00:00 UTC为标准的时间,将目标时间与1970-01-01 00:00:00时间的差值以秒来计算 ,单位是秒,可以是负值; 有些应用会将时间存储成epoch 时间形式,以提高读取效率。

参考链接

0%