PostgreSQL 时间函数 extract函数和epoch 新纪元时间的使用
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 新纪元时间的使用相关推荐
- PostgreSQL: epoch 新纪元时间的使用
新纪元时间 Epoch 是以 1970-01-01 00:00:00 UTC 为标准的时间,将目标时间与 1970-01-01 00:00:00 时间的差值以秒来计算 ,单位是秒,可以是负值; 有些应 ...
- MySQL extract()函数
转载自 MySQL extract()函数 简介MySQL EXTRACT函数 EXTRACT()函数提取日期的一部分.下面说明了EXTRACT()函数的语法. EXTRACT(unit FROM ...
- MySQL讲义第 39 讲——select 查询之函数(2):日期时间型函数
MySQL讲义第39讲--select 查询之函数(2):日期时间型函数 文章目录 MySQL讲义第39讲--select 查询之函数(2):日期时间型函数 一.数据准备 二.MySQL 日期时间型函 ...
- Mysql日期时间Extract函数介绍
MySQL日期时间Extract函数的优点在于可以选取日期时间的各个部分,从年一直到微秒,让我们对MySQL日期时间的处理更为轻松. MySQL 日期时间 Extract(选取)函数. 1. 选取日期 ...
- PostgreSQL SQL 语言:函数和操作符
本文档为PostgreSQL 9.6.0文档,本转载已得到原译者彭煜玮授权. 1. 逻辑操作符 常用的逻辑操作符有: AND OR NOT SQL使用三值的逻辑系统,包括真.假和null,null表示 ...
- PostgreSQL学习手册(五) 函数和操作符
PostgreSQL学习手册(五) 函数和操作符 一.逻辑操作符: 常用的逻辑操作符有:AND.OR和NOT.其语义与其它编程语言中的逻辑操作符完全相同. 二.比较操作符: 下面是Po ...
- 【PostgreSQL-9.6.3】函数(3)--日期和时间函数
在PostgreSQL中,DATE.TIME.TIMESTAMP是三种不同的数据类型.DATE表示日期类型,格式为YYYY-MM-DD或YYYYMMDD:TIME表示时间类型,格式为hh:mi:ss: ...
- [转]详细的mysql时间和日期函数
这里是一个使用日期函数的例子.下面的查询选择了所有记录,其date_col的值是在最后30天以内: mysql> SELECT something FROM table WHERE TO_DAY ...
- mysql 条件 函数_mysql 函数 时间函数,数学函数,字符串函数,条件判断函数
=========================================== mysql 相关函数 ============================================= ...
最新文章
- 【干货】NLP中对困惑度感到困惑?
- vue-cli3 中跨域解决方案
- [UE4]瞬移前后屏幕亮度变化,Get Player Camera Manager.Start Camera Fade
- FFMPEG使用参数详解
- PTA 数据结构与算法题目集(中文)
- 怎样写一篇优秀论文?看完受益匪浅!
- timer数据库总显示连接不上服务器,asp.net 上传服务器后,MSSQL数据库连接问题
- 手把手教你做产品经理1.0
- HTML期末学生大作业-奶茶网页作业html+css+javascript
- mysql vc运行库,VC运行库版本 - robslove的个人页面 - OSCHINA - 中文开源技术交流社区...
- java cron 解析_quartz cron 在线解析
- 《Inside C#》笔记(一) .NET平台
- 《大数据》2022年第3期目次摘要
- NCBI Genbank核苷酸序列数据库检索基因序列解读
- linux怎么运行cu,Linux cu 命令
- c语言binsearch函数头文件,C++ binary_search()函数详解
- 【技术美术图形部分】2.2 模型与材质基础
- 国家司法考试真题模拟APP
- Kerberos与Ranger
- In a case you entered incorrect password, please update it in Keychain Acces