PostgreSQL中的⽇期时间函数详解
⽬录
零、前⾔
⼀、获取当前时间
⼆、时间的加减
三、格式化函数
3.1时间转字符串
3.2字符串转⽇期
3.3字符串转时间
3.4Unix时间戳转时间
四、⼀些重要函数
4.1时间间隔
4.2时间截取
五、时间的转换
六、收!
零、前⾔
公司⾥有⼀台阿⾥云RDS数据库⽤了PPAS(Postgres PlusTM Advanced Server),在处理⽇期/时间时遇到⼀些问题,花了点时间整理如下。⼀、获取当前时间
select now()
select current_timestamp
select localtimestamp
select clock_timestamp()
有时候,我们不需要这么完整细致的时间,⾃然就有
select current_date字符串函数详解
select current_time
select localtime
⼆、时间的加减
⽼实说,这是见过最奇怪的⼀套时间计算的⽅式了。
select now() + interval '2 years';
select now() + interval '2 year';
select now() + interval '2 y';
select now() + interval '2 Y';
select now() + interval '2Y';
结果都是⼀样的:
interval部分可以不写,以此类推,⽉、⽇、⼩时、分钟、秒的加减计算也同理。
Abbreviation Meaning
Y Years
M Months (in the date part)
W Weeks
D Days
H Hours
M Minutes (in the time part)
S Seconds
值得⼀提的是单写M会默认为分钟的加减,针对⽉的加减建议写完整的month或months或者简写mon。
三、格式化函数
3.1时间转字符串
to_char(timestamp,text)
3.2字符串转⽇期
to_date(text,text)
3.3字符串转时间
to_timestamp(text,text)
3.4Unix时间戳转时间
to_timestamp(unixtime)
关于时间格式的模式,丢表跑:
模式描述
HH⼀天的⼩时数(01-12)
HH12⼀天的⼩时数(01-12)
HH24⼀天的⼩时数(00-23)
MI分钟(00-59)
SS秒(00-59)
MS毫秒(000-999)
US微秒(000000-999999)
AM正午标识(⼤写)
Y,YYY带逗号的年(4和更多位)
YYYY年(4和更多位)
YYY年的后三位
YY年的后两位
Y年的最后⼀位
MONTH全长⼤写⽉份名(空⽩填充为9字符)
Month全长混合⼤⼩写⽉份名(空⽩填充为9字符)
month全长⼩写⽉份名(空⽩填充为9字符)
MON⼤写缩写⽉份名(3字符)
Mon缩写混合⼤⼩写⽉份名(3字符)
mon⼩写缩写⽉份名(3字符)
MM⽉份号(01-12)
DAY全长⼤写⽇期名(空⽩填充为9字符)
Day全长混合⼤⼩写⽇期名(空⽩填充为9字符)
day全长⼩写⽇期名(空⽩填充为9字符)
DY缩写⼤写⽇期名(3字符)
Dy缩写混合⼤⼩写⽇期名(3字符)
dy缩写⼩写⽇期名(3字符)
DDD⼀年⾥的⽇⼦(001-366)
DD⼀个⽉⾥的⽇⼦(01-31)
D⼀周⾥的⽇⼦(1-7;周⽇是1)
W⼀个⽉⾥的周数(1-5)(第⼀周从该⽉第⼀天开始)
WW⼀年⾥的周数(1-53)(第⼀周从该年的第⼀天开始)
四、⼀些重要函数
4.1时间间隔
age(timestamp, timestamp)
当然也可以只输⼊⼀个参数,计算current_date与⼊参的时间间隔。
4.2时间截取
date_part(text, timestamp)
extract(field from timestamp)
还可以截断⾄指定精度
date_trunc(text, timestamp)
如图所⽰,⼩时后的分和秒被置为0。
五、时间的转换
select timestamp '2012-05-12 18:54:54'; --2012-05-12 18:54:54
select date '2012-05-12 18:54:54'; --2012-05-12
select time '2012-05-12 18:54:54'; --18:54:54
select TIMESTAMP WITH TIME ZONE '2012-05-12 18:54:54'
--2012-05-12 18:54:54+08
--与unix时间戳的转换
SELECT TIMESTAMP 'epoch' + 1341174767 * INTERVAL '1 second';
--2012-07-01 20:32:47
六、收!
到此这篇关于PostgreSQL中⽇期/时间函数详解的⽂章就介绍到这了,更多相关PostgreSQL⽇期/时间函数内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论