Extract 属于 SQL 的 DML(即数据库管理语言)函数,同样,InterBase 也支持 Extract,它主要用于从一个日期或时间型的字段内抽取年、月、日、时、分、秒数据,因此,它支持其关健字 YEAR、MONTH、DAY、HOUR、MINUTE、SECOND、WEEKDAY、YEARDAY。

计算时间差天数

select extract(day FROM (age('2017-12-10'::date , '2017-12-01'::date)));

计算时间差秒数

select extract(epoch FROM (now() - (now()-interval '1 day') ));

extract函数格式:
extract (field from source)
extract函数是从日期或者时间数值里面抽取子域,比如年、月、日等。source必须是timestamp、time、interval类型的值表达式。field是一个标识符或字符串,是从源数据中的抽取的域。
1. century (世纪)
test=# select extract (century from timestamp '2017-07-31 22:18:00');
 date_part
-----------
        21
(1 row)
2. year (年)
test=# select extract (year from timestamp '2017-07-31 22:18:00');
 date_part
-----------
      2017
(1 row)
3. decade (得到年份除10的值)
test=# select extract (decade from timestamp '2017-07-31 22:18:00');
 date_part
-----------
       201
(1 row)
4. millennium(得到第几个千年,0-1000第一个,1001-2000第二个,2001-3000第三个)
test=# select extract (millennium from timestamp '2017-07-31 22:18:00');
 date_part
-----------
         3
(1 row)
5. quarter (季度)
test=# select extract (quarter from timestamp '2017-07-31 22:18:00');
 date_part
-----------
         3
(1 row)
6. month (月份)
test=# select extract (month from timestamp '2017-07-31 22:18:00');
 date_part
-----------
         7
(1 row)
test=# select extract (month from interval '2 years 11 months');
 date_part
-----------
        11
(1 row)
7. week (返回当前是几年的第几个周)
test=# select extract (week from timestamp '2017-07-31 22:18:00');
 date_part
-----------
        31
(1 row)
8. dow (返回当前日期是周几,周日:0,周一:1,周二:2,...)
test=# select extract (dow from timestamp '2017-07-31 22:18:00');
 date_part
-----------
         1
(1 row)
9. day (本月的第几天)
test=# select extract (day from timestamp '2017-07-31 22:18:00');
 date_part
-----------
        31
(1 row)
10. doy (本年的第几天)
test=# select extract (doy from timestamp '2017-07-31 22:18:00');
 date_part
-----------
       212
(1 row)
11. hour (小时)
test=# select extract (hour from timestamp '2017-07-31 22:18:00');
 date_part
-----------
        22
(1 row)
12. min (得到时间中的分钟)
test=# select extract (min from timestamp '2017-07-31 22:18:00');
 date_part
-----------
        18
(1 row)
13. sec (返回时间中的秒)
test=# select extract (sec from timestamp '2017-07-31 22:18:00');
 date_part
-----------
         0
(1 row)

新纪元时间 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)

PostgreSQL 时间函数 extract函数和epoch 新纪元时间的使用相关推荐

  1. PostgreSQL: epoch 新纪元时间的使用

    新纪元时间 Epoch 是以 1970-01-01 00:00:00 UTC 为标准的时间,将目标时间与 1970-01-01 00:00:00 时间的差值以秒来计算 ,单位是秒,可以是负值; 有些应 ...

  2. MySQL extract()函数

    转载自   MySQL extract()函数 简介MySQL EXTRACT函数 EXTRACT()函数提取日期的一部分.下面说明了EXTRACT()函数的语法. EXTRACT(unit FROM ...

  3. MySQL讲义第 39 讲——select 查询之函数(2):日期时间型函数

    MySQL讲义第39讲--select 查询之函数(2):日期时间型函数 文章目录 MySQL讲义第39讲--select 查询之函数(2):日期时间型函数 一.数据准备 二.MySQL 日期时间型函 ...

  4. Mysql日期时间Extract函数介绍

    MySQL日期时间Extract函数的优点在于可以选取日期时间的各个部分,从年一直到微秒,让我们对MySQL日期时间的处理更为轻松. MySQL 日期时间 Extract(选取)函数. 1. 选取日期 ...

  5. PostgreSQL SQL 语言:函数和操作符

    本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. 1. 逻辑操作符 常用的逻辑操作符有: AND OR NOT SQL使用三值的逻辑系统,包括真.假和null,null表示 ...

  6. PostgreSQL学习手册(五) 函数和操作符

    PostgreSQL学习手册(五) 函数和操作符 一.逻辑操作符:     常用的逻辑操作符有:AND.OR和NOT.其语义与其它编程语言中的逻辑操作符完全相同. 二.比较操作符:     下面是Po ...

  7. 【PostgreSQL-9.6.3】函数(3)--日期和时间函数

    在PostgreSQL中,DATE.TIME.TIMESTAMP是三种不同的数据类型.DATE表示日期类型,格式为YYYY-MM-DD或YYYYMMDD:TIME表示时间类型,格式为hh:mi:ss: ...

  8. [转]详细的mysql时间和日期函数

    这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAY ...

  9. mysql 条件 函数_mysql 函数 时间函数,数学函数,字符串函数,条件判断函数

    =========================================== mysql 相关函数 ============================================= ...

最新文章

  1. 【干货】NLP中对困惑度感到困惑?
  2. vue-cli3 中跨域解决方案
  3. [UE4]瞬移前后屏幕亮度变化,Get Player Camera Manager.Start Camera Fade
  4. FFMPEG使用参数详解
  5. PTA 数据结构与算法题目集(中文)
  6. 怎样写一篇优秀论文?看完受益匪浅!
  7. timer数据库总显示连接不上服务器,asp.net 上传服务器后,MSSQL数据库连接问题
  8. 手把手教你做产品经理1.0
  9. HTML期末学生大作业-奶茶网页作业html+css+javascript
  10. mysql vc运行库,VC运行库版本 - robslove的个人页面 - OSCHINA - 中文开源技术交流社区...
  11. java cron 解析_quartz cron 在线解析
  12. 《Inside C#》笔记(一) .NET平台
  13. 《大数据》2022年第3期目次摘要
  14. NCBI Genbank核苷酸序列数据库检索基因序列解读
  15. linux怎么运行cu,Linux cu 命令
  16. c语言binsearch函数头文件,C++ binary_search()函数详解
  17. 【技术美术图形部分】2.2 模型与材质基础
  18. 国家司法考试真题模拟APP
  19. Kerberos与Ranger
  20. In a case you entered incorrect password, please update it in Keychain Acces

热门文章

  1. Win7服务优化方案(个人、网吧均适用)
  2. 3D角色 毛发制作 成束修改器的使用
  3. wxWidgets多线程及事件传递
  4. idea导入依赖Found no modules to depend on解决办法?(已解决)
  5. .Net FTP文件上传下载及相关文件操作
  6. restrict关键字用法
  7. 从月薪4000到年薪100万,我总结了2点
  8. 361度宣布新晋世界拳王徐灿为品牌形象代言人
  9. cdn cfdn是什么_CDN是什么,什么是加速节点
  10. HTTP标准状态码及非官方拓展码大全