创新互联PostgreSQL教程PostgreSQL时间/日期函数和操作符

PostgreSQL 时间/日期函数和操作符

日期/时间操作符

下表演示了基本算术操作符的行为(+,*, 等):

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于做网站、成都网站制作、山丹网络推广、成都小程序开发、山丹网络营销、山丹企业策划、山丹品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供山丹建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

操作符 例子 结果
+ date '2001-09-28' + integer '7' date '2001-10-05'
+ date '2001-09-28' + interval '1 hour' timestamp '2001-09-28 01:00:00'
+ date '2001-09-28' + time '03:00' timestamp '2001-09-28 03:00:00'
+ interval '1 day' + interval '1 hour' interval '1 day 01:00:00'
+ timestamp '2001-09-28 01:00' + interval '23 hours' timestamp '2001-09-29 00:00:00'
+ time '01:00' + interval '3 hours' time '04:00:00'
- - interval '23 hours' interval '-23:00:00'
- date '2001-10-01' - date '2001-09-28' integer '3' (days)
- date '2001-10-01' - integer '7' date '2001-09-24'
- date '2001-09-28' - interval '1 hour' timestamp '2001-09-27 23:00:00'
- time '05:00' - time '03:00' interval '02:00:00'
- time '05:00' - interval '2 hours' time '03:00:00'
- timestamp '2001-09-28 23:00' - interval '23 hours' timestamp '2001-09-28 00:00:00'
- interval '1 day' - interval '1 hour' interval '1 day -01:00:00'
- timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00' interval '1 day 15:00:00'
* 900 * interval '1 second' interval '00:15:00'
* 21 * interval '1 day' interval '21 days'
* double precision '3.5' * interval '1 hour' interval '03:30:00'
/ interval '1 hour' / double precision '1.5' interval '00:40:00'

日期/时间函数

函数 返回类型 描述 例子 结果
age(timestamp, timestamp) interval 减去参数后的"符号化"结果,使用年和月,不只是使用天 age(timestamp '2001-04-10', timestamp '1957-06-13') 43 years 9 mons 27 days
age(timestamp) interval current_date减去参数后的结果(在午夜) age(timestamp '1957-06-13') 43 years 8 mons 3 days
clock_timestamp() timestamp with time zone 实时时钟的当前时间戳(在语句执行时变化)    
current_date date 当前的日期;    
current_time time with time zone 当日时间;    
current_timestamp timestamp with time zone 当前事务开始时的时间戳;    
date_part(text, timestamp) double precision 获取子域(等效于extract); date_part('hour', timestamp '2001-02-16 20:38:40') 20
date_part(text, interval) double precision 获取子域(等效于extract); date_part('month', interval '2 years 3 months') 3
date_trunc(text, timestamp) timestamp 截断成指定的精度; date_trunc('hour', timestamp '2001-02-16 20:38:40') 2001-02-16 20:00:00
date_trunc(text, interval) interval 截取指定的精度, date_trunc('hour', interval '2 days 3 hours 40 minutes') 2 days 03:00:00
extract(field from timestamp) double precision 获取子域; extract(hour from timestamp '2001-02-16 20:38:40') 20
extract(field from interval) double precision 获取子域; extract(month from interval '2 years 3 months') 3
isfinite(date) boolean 测试是否为有穷日期(不是 +/-无穷) isfinite(date '2001-02-16') true
isfinite(timestamp) boolean 测试是否为有穷时间戳(不是 +/-无穷) isfinite(timestamp '2001-02-16 21:28:30') true
isfinite(interval) boolean 测试是否为有穷时间间隔 isfinite(interval '4 hours') true
justify_days(interval) interval 按照每月 30 天调整时间间隔 justify_days(interval '35 days') 1 mon 5 days
justify_hours(interval) interval 按照每天 24 小时调整时间间隔 justify_hours(interval '27 hours') 1 day 03:00:00
justify_interval(interval) interval 使用justify_daysjustify_hours调整时间间隔的同时进行正负号调整 justify_interval(interval '1 mon -1 hour') 29 days 23:00:00
localtime time 当日时间;    
localtimestamp timestamp 当前事务开始时的时间戳;    
make_date(year int, month int, day int) date 为年、月和日字段创建日期 make_date(2013, 7, 15) 2013-07-15
make_interval(years int DEFAULT 0, months int DEFAULT 0, weeks int DEFAULT 0, days int DEFAULT 0, hours int DEFAULT 0, mins int DEFAULT 0, secs double precision DEFAULT 0.0) interval 从年、月、周、天、小时、分钟和秒字段中创建间隔 make_interval(days := 10) 10 days
make_time(hour int, min int, sec double precision) time 从小时、分钟和秒字段中创建时间 make_time(8, 15, 23.5) 08:15:23.5
make_timestamp(year int, month int, day int, hour int, min int, sec double precision) timestamp 从年、月、日、小时、分钟和秒字段中创建时间戳 make_timestamp(2013, 7, 15, 8, 15, 23.5) 2013-07-15 08:15:23.5
make_timestamptz(year int, month int, day int, hour int, min int, sec double precision, [ timezone text ]) timestamp with time zone 从年、月、日、小时、分钟和秒字段中创建带有时区的时间戳。 没有指定timezone时,使用当前的时区。 make_timestamptz(2013, 7, 15, 8, 15, 23.5) 2013-07-15 08:15:23.5+01
now() timestamp with time zone 当前事务开始时的时间戳;    
statement_timestamp() timestamp with time zone 实时时钟的当前时间戳;    
timeofday() text clock_timestamp相同,但结果是一个text 字符串;    
transaction_timestamp() timestamp with time zone 当前事务开始时的时间戳;    

分享题目:创新互联PostgreSQL教程PostgreSQL时间/日期函数和操作符
文章路径:http://www.mswzjz.cn/qtweb/news35/300985.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能