阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

PostgreSQL 给定日期间隔初始时间计算

219次阅读
没有评论

共计 2511 个字符,预计需要花费 7 分钟才能阅读完成。

PostgreSQL 给定日期间隔初始时间计算

1. 功能说明:
date_trunc: 截取给定时间(TIMESTAMP,date),获得指定精度(时,天,月,年)的初始使时间

2. 一般时间
date_trunc(‘hour’,TIMESTAMP ‘2018-08-16 20:38:40’)
Result: 2018-08-16 20:00:00
date_trunc(‘day’,TIMESTAMP ‘2018-08-16 20:38:40’)
Result: 2018-08-16 00:00:00
date_trunc(‘month’,TIMESTAMP ‘2018-08-16 20:38:40’)
Result: 2018-08-01 00:00:00
date_trunc(‘year’,TIMESTAMP ‘2018-08-16 20:38:40’)
Result: 2018-01-01 00:00:00

3. 特殊需求:
给定时间段的每年的所有月份的第一天,最后一天,下月第一天
— Result: month_first_day, month_end_day, next_month
select date(zz) as month_first_day, date(zz + interval ‘1 month’ – interval ‘1 day’) as month_end_day, date(zz + interval ‘1 month’) as next_month
from generate_series(date_trunc(‘year’,to_date(‘20180510′,’yyyymmdd’)),date_trunc(‘year’,to_date(‘201905′,’yyyymmdd’)),’1 month’) as tt(zz);

SQL 结果:
 month_first_day | month_end_day | next_month
—————–+—————+————
 2018-01-01      | 2018-01-31    | 2018-02-01
 2018-02-01      | 2018-02-28    | 2018-03-01
 2018-03-01      | 2018-03-31    | 2018-04-01
 2018-04-01      | 2018-04-30    | 2018-05-01
 2018-05-01      | 2018-05-31    | 2018-06-01
 2018-06-01      | 2018-06-30    | 2018-07-01
 2018-07-01      | 2018-07-31    | 2018-08-01
 2018-08-01      | 2018-08-31    | 2018-09-01
 2018-09-01      | 2018-09-30    | 2018-10-01
 2018-10-01      | 2018-10-31    | 2018-11-01
 2018-11-01      | 2018-11-30    | 2018-12-01
 2018-12-01      | 2018-12-31    | 2019-01-01
 2019-01-01      | 2019-01-31    | 2019-02-01
(13 rows)

找出指定时间小时,天,月,年的初始值

— Result: dtrunc_hour, dtrunc_day, dtrunc_month, dtrunc_year
SELECT date_trunc(‘hour’, TIMESTAMP ‘2018-08-16 20:38:40’) as dtrunc_hour ,date_trunc(‘day’, TIMESTAMP ‘2018-08-16 20:38:40’) as dtrunc_day,date_trunc(‘month’, TIMESTAMP ‘2018-08-16 20:38:40’) as dtrunc_month,date_trunc(‘year’, TIMESTAMP ‘2018-08-16 20:38:40’) as dtrunc_year;

SQL 结果:

    dtrunc_hour    |    dtrunc_day      |    dtrunc_month    |    dtrunc_year   
———————+———————+———————+———————
 2018-08-16 20:00:00 | 2018-08-16 00:00:00 | 2018-08-01 00:00:00 | 2018-01-01 00:00:00
(1 row)

postgres=#

Ubuntu 16.04 下安装 PostgreSQL 和 phpPgAdmin  http://www.linuxidc.com/Linux/2016-08/134260.htm

Linux 下 RPM 包方式安装 PostgreSQL  http://www.linuxidc.com/Linux/2016-03/128906.htm

Linux 下安装 PostgreSQL  http://www.linuxidc.com/Linux/2016-12/138765.htm

Linux 下 PostgreSQL 安装部署指南  http://www.linuxidc.com/Linux/2016-11/137603.htm

Linux 下安装 PostgreSQL 并设置基本参数  http://www.linuxidc.com/Linux/2016-11/137324.htm

Fedota 24 将数据库升级到 PostgreSQL 9.5  http://www.linuxidc.com/Linux/2016-11/137374.htm

CentOS 6.5 下 PostgreSQL 服务部署  http://www.linuxidc.com/Linux/2017-01/139144.htm

MongoDB 的详细介绍 :请点这里
MongoDB 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-07/145597.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2511字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中