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=#

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:PostgreSQL给定日期间隔初始时间计算-创新互联
文章源于:http://ybzwz.com/article/dpjcgj.html