PostgreSQL时间处理的一些常用方式总结

 更新时间:2023年03月15日 09:21:02   作者:进击的小陈  
PostgreSQL提供了许多返回当前日期和时间的函数,下面这篇文章主要给大家介绍了关于PostgreSQL时间处理的一些常用方式,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下

1.获取当前时间

now()函数:

select now();

current_timestamp,同now():

select current_timestamp;

select current_time;

select current_date;

可以去掉now()、掉后面的+8等:

select now()::timestamp(0)without time zone;
select current_timestamp::timestamp(0)without time zone;

2.date_part函数

语法:DATE_PART(field, source), filed可以理解为要截取的类型。

下面是filed支持的类型:

CENTURY,世纪,获取日期所在的世纪:

select date_part('CENTURY', TIMESTAMP '2022-12-16 12:21:13');
select date_part('CENTURY', now());

MILLENNIUM,千年

select date_part('MILLENNIUM', timestamp '2022-12-16 13:21:15');

YEAR,年份域

select date_part('YEAR', timestamp '2022-12-16 13:21:15');

MONTH,对于timestamp数值,它是一年里的月份数(1-12);对于interval数值,它是月的数目,然后对12取模(0-11)

select date_part('MONTH', timestamp '2022-12-16 13:21:15');

select date_part('month', interval '2 years 5 months')

DAY,日期里的天,值是1-31:

select date_part('day', TIMESTAMP '2022-12-16 12:21:13');
select date_part('day', now());

HOUR,小时(0-23)

select date_part('HOUR', TIMESTAMP '2022-12-16 12:21:13');

MINUTE,分钟域(0-59)

select date_part('MINUTE', TIME '2022-12-16 13:21:15');

SECOND,秒域,包括小数部分(0-59[1])

select date_part('SECOND', timestamp '2022-12-16 13:21:15');

MICROSECONDS,秒域(包括小数)乘以 1,000,000

select date_part('MICROSECONDS', TIME '2022-12-16 13:21:15');

MILLISECONDS,秒域(包括小数)乘以 1,000

select date_part('MILLISECONDS', timestamp '2022-12-16 13:21:15');

DECADE,年份域除以10:

select date_part('DECADE', TIMESTAMP '2022-12-16 12:21:13');

DOW,星期号(0-6;星期天是0) (仅用于timestamp)

select date_part('DOW', TIMESTAMP '2022-12-16 12:21:13');
select date_part('DOW', now());

DOY,一年中的第几天(1 -365/366) (仅用于 timestamp)

select date_part('DOY', TIMESTAMP '2022-12-16 12:21:13');

QUARTER,该天所在的该年的季度(1-4)(仅用于 timestamp)

select date_part('QUARTER', timestamp '2022-12-16 13:21:15');

WEEK,该天在所在的年份里是第几周。

select date_part('WEEK', timestamp '2022-12-16 13:21:15');

3.extract()函数

使用语法:extract (field from source),field 支持的类型,和date_part()函数一样

select extract ('year' from timestamp '2022-12-16 13:21:15')

4.日期格式化函数

to_char(timestamp, text),把时间戳转换成字串

select to_char(now(), 'YYYY-MM-DD HH24:MI:SS') 

to_date(text, text) 把字串转换成日期

select to_date('05 Dec 2022', 'DD Mon YYYY')

to_timestamp(text, text) ,把字串转换成时间戳

select to_timestamp('05 Dec 2022', 'DD Mon YYYY')

5.时间运算

select date '2001-09-28' + integer '7';
select date '2001-09-28' + interval '1 hour';
select date '2001-09-28' + time '03:00';
select interval '1 day' + interval '1 hour';
select timestamp '2001-09-28 01:00' + interval '23 hours';
select time '01:00' + interval '3 hours';
select - interval '23 hours';
select date '2001-10-01' - date '2001-09-28';
select date '2001-10-01' - integer '7';
select date '2001-09-28' - interval '1 hour';
select time '05:00' - time '03:00';
select time '05:00' - interval '2 hours;
select timestamp '2001-09-28 23:00' - interval '23 hours';
select interval '1 day' - interval '1 hour';
select timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00';
select interval '1 hour' * double precision '3.5';
select interval '1 hour' / double precision '1.5';

6.计算时间差

select now() + interval '10 min/year/month/day/hour/sec/ (1 year 1 month 1 day 1 hour 1 min 1 sec)'
select now() - interval '10 min/year/month/day/hour/sec/ (1 year 1 month 1 day 1 hour 1 min 1 sec)'
select now()::timestamp(0)without time zone-interval '72 hour'
select  extract(day from now() - '2001-09-27 12:00') from  user ;

总结

到此这篇关于pgsql时间处理的一些常用方式总结的文章就介绍到这了,更多相关pgsql时间处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PostgreSQL对数组元素聚合基本方法示例

    PostgreSQL对数组元素聚合基本方法示例

    这篇文章主要为大家介绍了PostgreSQL对数组元素聚合基本方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Linux系统安装PostgreSQL数据库及配置的详细过程

    Linux系统安装PostgreSQL数据库及配置的详细过程

    这篇文章主要给大家介绍了关于Linux系统安装PostgreSQL数据库及配置的详细过程,PgSQL(全称PostgreSQL)是一个功能强大的开源对象-关系型数据库系统,结合了许多安全存储和扩展最复杂数据工作负载的功能,需要的朋友可以参考下
    2023-12-12
  • Navicat连接postgresql时出现'datlastsysoid does not exist'报错问题完美解决

    Navicat连接postgresql时出现'datlastsysoid does not exist&

    这篇文章主要给大家介绍了关于Navicat连接postgresql时出现'datlastsysoid does not exist'报错问题的完美解决办法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • Ubuntu中卸载Postgresql出错的解决方法

    Ubuntu中卸载Postgresql出错的解决方法

    这篇文章主要给大家介绍了关于在Ubuntu中卸载Postgresql出错的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • 基于PostgreSQL和mysql数据类型对比兼容

    基于PostgreSQL和mysql数据类型对比兼容

    这篇文章主要介绍了基于PostgreSQL和mysql数据类型对比兼容,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • PostgreSQL 自增语法的用法说明

    PostgreSQL 自增语法的用法说明

    这篇文章主要介绍了PostgreSQL 自增语法的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Postgresql 数据库权限功能的使用总结

    Postgresql 数据库权限功能的使用总结

    这篇文章主要介绍了Postgresql 数据库权限功能的使用总结,具有很好的参考价值,对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • PostgreSQL将数据加载到buffer cache中操作方法

    PostgreSQL将数据加载到buffer cache中操作方法

    这篇文章主要介绍了PostgreSQL将数据加载到buffer cache中,我们可以使用pg_prewarm插件来将指定的表加载到OS Buffer或者pg shared buffer中,具体操作方法跟随小编一起看看吧
    2021-04-04
  • PostgreSQL表膨胀监控案例(精确计算)

    PostgreSQL表膨胀监控案例(精确计算)

    这篇文章主要介绍了PostgreSQL表膨胀监控案例(精确计算),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Postgresql删除数据库表中重复数据的几种方法详解

    Postgresql删除数据库表中重复数据的几种方法详解

    本文详细讲解了Postgresql删除数据库表中重复数据的几种方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10

最新评论