PostgreSQL: epoch 新纪元时间的使用

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

下面演示下 pg 中 epoch 时间的使用换算方法。

将 timestamp 时间转换成 epoch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
francs=> select extract(epoch from timestamp without time zone '1970-01-01 01:00:00');  
date_part
-----------
3600
(1 row)

francs=> select extract(epoch from timestamp without time zone '1970-01-01 02:00:00');
date_part
-----------
7200
(1 row)

francs=> select extract(epoch from interval '+1 hours');
date_part
-----------
3600
(1 row)

francs=> select extract(epoch from interval '-1 hours');
date_part
-----------
-3600
(1 row)

将 epoch 时间转换成 timestamp

1
2
3
4
5
6
7
8
9
10
11
francs=> select timestamp without time zone 'epoch' + 3600 * interval '1 second';  
?column?
---------------------
1970-01-01 01:00:00
(1 row)

francs=> select timestamp without time zone 'epoch' + 7200 * interval '1 second';
?column?
---------------------
1970-01-01 02:00:00
(1 row)

手册上关于 epoch 的解释

For date and timestamp values, the number of seconds since 1970-01-01 00:00:00 UTC (can be negative);
for interval values, the total number of seconds in the interval

原创文章,作者:506227337,如若转载,请注明出处:https://blog.ytso.com/237862.html

(0)
上一篇 2022年1月29日
下一篇 2022年1月29日

相关推荐

发表回复

登录后才能评论