ield 表示取的时间对象,source 表示取的日期来源,类型为 timestamp、time 或 interval。
3.1 取年份
david=# select extract(year from now());
date_part
-----------
2013
(1 row)
david=#
3.2 取月份
david=# select extract(month from now());
date_part
-----------
4
(1 row)
david=#
david=# select extract(day from timestamp '2013-04-13');
date_part
-----------
13
(1 row)
david=#
david=# SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');
date_part
-----------
40
(1 row)
david=#
3.3 查看今天是一年中的第几天
david=# select extract(doy from now());
date_part
-----------
102
(1 row)
david=#
3.4 查看现在距1970-01-01 00:00:00 UTC 的秒数
david=# select extract(epoch from now());
date_part
------------------
1365755907.94474
(1 row)
david=#
3.5 把epoch 值转换回时间戳
david=# SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 1369755555 * INTERVAL '1 second';
column
------------------------
2013-05-28 23:39:15+08
(1 row)
david=#
以上是基本的PG时间/日期函数使用,可满足一般的开发运维应用。