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

2023-02-28 14:20 更新

日期/时间操做符

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

操作符 例子 结果
+ 日期'2001-09-28'+整数'7' 日期“ 2001-10-05”
+ 日期'2001-09-28'+间隔'1小时' 一场'2001-09-28 01:00:00'
+ 日期“ 2001-09-28” +时间“ 03:00” 一场'2001-09-28 03:00:00'
+ 间隔“ 1天” +间隔“ 1小时” 间隔“ 1天01:00:00”
+ 最佳“ 2001-09-28 01:00” +间隔“ 23小时” 一流'2001-09-29 00:00:00'
+ 时间“ 01:00” +间隔“ 3小时” 时间'04:00:00'
-- -间隔“ 23小时” 间隔'-23:00:00'
-- 日期'2001-10-01'-日期'2001-09-28' 整体“ 3”(天)
-- 日期'2001-10-01'-整体'7' 日期“ 2001-09-24”
-- 日期'2001-09-28'-间隔'1小时' 一场'2001-09-27 23:00:00'
-- 时间'05:00'-时间'03:00' 间隔'02:00:00'
-- 时间'05:00'-间隔'2小时' 时间'03:00:00'
-- timestamp'2001-09-28 23:00'-间隔'23 hours' 一流'2001-09-28 00:00:00'
-- 间隔“ 1天”-间隔“ 1小时” 间隔“ 1天-01:00:00”
-- 一场'2001-09-29 03:00'-一场'2001-09-27 12:00' 间隔“ 1天15:00:00”
* 900 *间隔“ 1秒” 间隔'00:15:00'
* 21 *间隔“ 1天” 间隔“ 21天”
* 双精度'3.5'*间隔'1小时' 间隔'03:30:00'
/ 间隔“ 1小时” /双精度“ 1.5” 间隔'00:40:00'

日期/时间函数

功能 返回类型 描述 例子 结果
age(timestamp, timestamp) 间隔 最初参数后的“符号化”结果,使用年和月,不只是使用天 年龄(至少“ 2001-04-10”,只能“ 1957-06-13”) 43年9个月27天
age(timestamp) 间隔 current_date最初参数后的结果(在午夜) 年龄(每年“ 1957-06-13”) 43年8个月3天
clock_timestamp() 带时区的预算 实时时钟的当前最佳(在语句执行时变化)    
current_date 日期 当前的日期;    
current_time 带时区的时间 当日时间;    
current_timestamp 带时区的预算 当前事务开始时的合理;    
date_part(text, timestamp) 双精度 获取子域(等效于 extract); date_part(“小时”,预期“ 2001-02-16 20:38:40') 20
date_part(text, interval) 双精度 获取子域(等效于 extract); date_part(“月”,间隔“ 2年3个月”) 3
date_trunc(text, timestamp) 最好记 截断成指定的精度; date_trunc(“小时”,分为“ 2001-02-16 20:38:40') 2001-02-16 20:00:00
date_trunc(text, interval) 间隔 截取指定的精度, date_trunc('小时',间隔'2天3小时40分钟') 2天03:00:00
extract(初步记中的起点) 双精度 获取子域 摘录(从预设'2001-02-16 20:38:40'开始的小时数) 20
extract(间隔的最高) 双精度 获取子域 摘录(间隔“ 2年3个月”中的月份) 3
isfinite(date) 布尔值 测试是否为有穷日期(不是+/-无穷) 无限(日期'2001-02-16') 真正
isfinite(timestamp) 布尔值 测试是否为有穷困(不是+/-无穷) 无限(至少'2001-02-16 21:28:30') 真正
isfinite(interval) 布尔值 测试是否为有穷时间间隔 无限(间隔“ 4小时”) 真正
justify_days(interval) 间隔 按照每月30天调整时间间隔 justify_days(间隔“ 35天”) 1星期一5天
justify_hours(interval) 间隔 按照每天24小时调整时间间隔 justify_hours(间隔“ 27小时”) 1天03:00:00
justify_interval(interval) 间隔 使用 justify_days justify_hours调整时间间隔的同时进行正负号调整 justify_interval(间隔'1周一-1小时') 29天23:00:00
localtime 时间 当日时间;    
localtimestamp 最好记 当前事务开始时的合理;    
make_date(year int, month int, day int)
日期
为年,月和日划分创建日期 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)
间隔

从年,月,周,天,小时,分钟和秒分段中创建间隔

make_interval(天数== 10)

10天
make_time(hour int,
 min int, sec double precision)
时间 从小时,分钟和秒分段中创建时间 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)
最好记

从年,月,日,小时,分钟和秒分段中创建初始

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 ])
带时区的预算

从指定年期,使用当前的时区。

make_timestamptz(2013、7、15、8、15、23.5)

2013-07-15 08:15:23.5 + 01
now() 带时区的预算 当前事务开始时的合理;    
statement_timestamp() 带时区的预算 实时时钟的当前最佳;    
timeofday() 文字 clock_timestamp相同,但结果是一个文本字符串;    
transaction_timestamp() 带时区的预算 当前事务开始时的合理;    


以上内容是否对您有帮助:
前端开发就业
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号