PostgreSQL: epoch 新纪元时间的使用

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

--1 将 time stamp 时间转换成 epoch 时间
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)

--2 将epoch 时间转换成  time stamp  时间
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)

--3 手册上关于 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

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

SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE ‘2001-02-16 20:38:40.12-08‘);
Result: 982384720.12

SELECT EXTRACT(EPOCH FROM INTERVAL ‘5 days 3 hours‘);
Result: 442800

Here is how you can convert an epoch value back to a time stamp:

SELECT TIMESTAMP WITH TIME ZONE ‘epoch‘ + 982384720.12 * INTERVAL ‘1 second‘;

http://www.postgresql.org/docs/9.1/static/functions-datetime.html
时间: 2024-10-18 16:25:28

PostgreSQL: epoch 新纪元时间的使用的相关文章

postgresql 数据库迁移时间

上周四要做数据库迁移,要迁的pg库数据量为1165GB. 在原库上后台跑着脚本导数据到新库,先导了850M的基础表,然后用脚本导历史表: pg_dump -h 0.0.0.0 -U monitor monitor -t 'his*' | psql -h 135.32.9.99 -U postgres monitor > postgresql.log 从上周四早上10:24启动,到差不多今早10点结束.总共用时大约143个小时左右. 哇-好大一个数字! 版权声明:本文为博主原创文章,未经博主允许不

java web中向postgreSQL插入当前时间

方式1 常用插入方式 Timestamp currentTime= new Timestamp(System.currentTimeMillis()); String sql = "INSERT INTO message(date_create) VALUES (" + "'" + currentTime + "'" + ");"; 方式2 使用 占位符 Timestamp currentTime= new Timestamp

PostGreSQL数据库,时间数据类型

2016-06-0808:55:33 ---"17:10:13.236"time without time zone:时:分:秒.毫秒 ---"17:10:13.236+08"time with time zone:时:分:秒.毫秒+时区 ---"2016-06-02 17:18:25.281"timestamp without time zone:年月日时:分:秒.毫秒 ---"2016-06-02 17:18:25.281+08&q

PostgreSQL的时间/日期函数使用

PostgreSQL的常用时间函数使用整理如下: 一.获取系统时间函数 1.1 获取当前完整时间 select now(); david=# select now(); now ------------------------------- 2013-04-12 15:39:40.399711+08 (1 row) david=# current_timestamp 同 now() 函数等效. david=# select current_timestamp; now -------------

[转帖]PostgreSQL的时间/日期函数使用

https://www.cnblogs.com/mchina/archive/2013/04/15/3010418.html 这个博客的 文章目录比上一个好十倍 另外interval 之前的必须加 之后的时间可以不用加 勒了个擦的. PostgreSQL的常用时间函数使用整理如下: 一.获取系统时间函数 1.1 获取当前完整时间 select now(); david=# select now(); now ------------------------------- 2013-04-12 1

Wireshark中遇到的epoch time

使用Wireshark分析DNS时遇到的Epoch time 首先看一下Wireshark分析DNS的情况(如下图): 这是协议树的第一项,第一项中的第五行出现了Epoch Time,查阅资料之后才知道: Epoch指的是一个特定的时间(新纪元时间):1970-01-01 00:00:00 UTC.(协调世界时Universal Time Coordinated) 图片中的epoch time是1416328469.028274000seconds,假如我们将一年算作365天 141632846

time()获取系统时间

1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方.下面主要介绍在C/C++中时间和日期的使用方法. 通过学习许多C/C++库,你可以有很多操作.使用时间的方法.但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个: Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT).比如,中国内地的时间与U

postgresql(2)

mysql转换postgresql 1)时间格式转换from_unixtime(timestamp,'%Y-%m-%d' )  ==> SELECT to_char(to_timestamp(t.create_time / 1000), 'YYYY-MM-DD HH24:MI:SS') 2)字段拼接GROUP_CONCAT(restaurantid,'|',cityid)  ==> select array_to_string(ARRAY(SELECT unnest(array_agg(res

[转载] C/C++中怎样获取日期和时间

C/C++中怎样获取日期和时间摘要: 本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时.时间的获取.时间的计算和显示格式等方面进行了阐述.本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法. 关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元) 1.概念 在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有