PostgreSQL中的时间及常用操作

本文介绍了PostgreSQL中处理时间的常见操作,包括使用DATE_PART()计算时间差,以小时和分钟为单位,以及通过EPOCH获取时间差。还讨论了时间取整的不同选项,如millennium, century, decade等,并提及了时间的加减操作。" 113566976,9420606,约瑟夫环问题解决:单向环形列表实现,"['数据结构', '链表', '算法']
摘要由CSDN通过智能技术生成

0. Postgres中的常用时间类型

--日期
date

--时间
time

--日期+时间
timestamp 

--时间长度
interval

1. 计算时间差

PostgreSQL 没有DATEDIFF()函数,可以用DATE_PART()实现该功能:

MySQL PostgreSQL
Years DATEDIFF(yy, start, end) DATE_PART(‘year’, end) - DATE_PART(‘year’, start)
Months DATEDIFF(mm, start, end) years_diff * 12 + (DATE_PART(‘month’, end) - DATE_PART(‘month’, start))
Days DATEDIFF(dd, start, end) DATE_PART(‘day’, end - start)
Weeks DATEDIFF(wk, start, end) TRUNC(DATE_PART(‘day’, end - start)/7)
Hours DATEDIFF(hh, start, end) days_diff * 24 + DATE_PART(‘hour’, end - start )
Minutes DATEDIFF(mi, start, end) hours_diff * 60 + DATE_PART(‘minute’, end - start )
Seconds DATEDIFF(ss, start, end) minutes_diff * 60 + DATE_PART(‘minute’, end - start )

差多少小时

--In MySQL
SELECT DATEDIFF(hour, '2011-12-30 08:55', '2011-12-30 09:05');

--注意:实际时间不到1小时时,DATEDIFF会返回1,而DATE_PART返回0
--In PostgreSQL
  SELECT DATE_PART('day', '2011-12-30 08:55'::timestamp - '2011-12-30 09:05'::
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值