postgresql-常用日期函数

PostgreSQL常用时间函数与时间计算提取示例说明 主要用于计算一些特殊时间,函数说明截断成指定的精度,第1个参数指定精度select date_trunc('year',now()) as 当年第1天,date_trunc('year',now() + interval '1 year') - interval '1 day' as 当年最后1天,date_trunc('month',now()) as 当月第1天, 阅读详情
AI摘要

本文详细介绍了PostgreSQL中常用的日期和时间处理函数,如获取当前时间、计算时间间隔、提取日期信息、截断日期/时间、创建日期/时间和时区转换等,为开发者在处理时间相关操作提供指导。,

简介

PostgreSQL 提供了以下日期和时间运算的算术运算符。
在这里插入图片描述
在这里插入图片描述
获取当前系统时间

select current_date,current_time,current_timestamp ;

在这里插入图片描述

-- 当前系统时间一周后的日期
select current_date + interval '7 day',current_time,current_timestamp ;

在这里插入图片描述

计算时间间隔

age(timestamp, timestamp)函数用于计算两个时间点之间的间隔,age(timestamp)函数用于
计算当前日期的凌晨 12 点到该时间点之间的间隔

select age(now(),date '1988-11-29') as ageResult;

在这里插入图片描述

获取时间中的信息

date_part(text, timestamp)和 extract(field FROM timestamp)函数用于获取日期时间中的某
一部分,例如年份、月份、小时等;date_part(text, interval)和 extract(field FROM interval)函数
用于获取时间间隔中的某一部分

-- 获取当前日期所属年份
select extract ('year' from now()) as t;

在这里插入图片描述

-- 判断当前日期是星期几
select extract ('dow' from now()) as t;

在这里插入图片描述

select date_part('year', timestamp '2020-03-03 20:38:40'), extract(year FROM
timestamp '2020-03-03 20:38:40'),
 date_part('month', interval '1 years 5 months'), extract(month FROM
interval '1 years 5 months');

在这里插入图片描述

select
	date_part('year',
	now()) as "当前年度",
	date_part('month',now()) as "当前月份",
	date_part('day',now()) as "当前日子",
	date_part('dow',now()) as "星期几"
	;

在这里插入图片描述
extract 函数实际上也是调用了 date_part 函数,只是参数方式不同。这两个函数支持获取的信息包括

  • century,世纪;
  • day,对于 timestamp,返回月份中的第几天;对于 interval,返回天数;
  • decade,年份除以 10;
  • dow,星期天(0)到星期六(6);
  • doy,一年中的第几天,(1 - 365/366);
  • epoch,对于 timestamp WITH time zone,返回 1970-01-01 00:00:00 UTC 到该时间的秒数;
    对于 date 和 timestamp,返回本地时间的 1970-01-01 00:00:00 到该时间的秒数;对于
    interval,返回以秒数表示的该时间间隔;
  • hour,小时(1 - 23);
  • isodow,ISO 8601 标准中的星期一(1)到星期天(7)
  • isoyear,ISO 8601 标准定义的日期所在的年份。每年从包含 1 月 4 日的星期一开始,2017
    年 01 月 01 日属于 2016 年;
  • microseconds,微秒,包含秒和小数秒在内的数字乘以 1000000;
  • millennium,千年;
  • milliseconds,毫秒,包含秒和小数秒在内的数字乘以 1000;
  • minute,分钟,(0 - 59);
  • month,月份;
  • quarter,季度,(1 - 4);
  • second,秒数,包含小数秒;
  • timezone,UTC 时区,单位为秒;
  • timezone_hour,UTC 时区中的小时部分;
  • timezone_minute,UTC 时区中的分钟部分;
  • week,ISO 8601 标准中的星期几,每年从第一个星期四所在的一周开始;
  • year,年份。
-- 计算当前日期从1970年到现在的秒数
select extract('epoch' from current_date);

在这里插入图片描述

截断日期/时间

date_trunc(field, source [, time_zone ])函数用于将 timestamp、timestamp WITH time zone、
date、time 或者 interval 数据截断到指定的精度
date_trunc 函数支持以下截断精度:

  • microseconds
  • milliseconds
  • second
  • minute
  • hour
  • day
  • week
  • month
  • quarter
  • year
  • decade
  • century
  • millennium
select date_trunc('year', timestamp '2020-03-03 20:38:40'),
 date_trunc('day', timestamptz '2020-03-03 20:38:40+00',
'asia/shanghai'),
 date_trunc('hour', interval '2 days 3 hours 40 minutes');

在这里插入图片描述

创建日期/时间

make_date(year int, month int, day int)函数用于创建一个日期:
make_interval(years int DEFAULT 0, months int DEFAULT 0, weeks int DEFAULT 0, days int DEFAULT 0, hours int DEFAULT 0, mins int DEFAULT 0, secs double precision DEFAULT 0.0)函数通过指定年、月、日等信息创建一个时间间隔。
make_time(hour int, min int, sec double precision)函数通过指定小时、分钟和秒数创建一个
时间。
make_timestamp(year int, month int, day int, hour int, min int, sec double precision) 函数通过指定年、月、日、时、分、秒创建一个时间戳
make_timestamptz(year int, month int, day int, hour int, min int, sec double precision, [ timezone text ])函数通过指定年、月、日、时、分、秒创建一个带时区的时间戳。如果没有指
定时区,使用当前时区
to_timestamp(double precision)函数将 Unix 时间戳(自从 1970-01-01 00:00:00+00 以来的秒
数)转换为 PostgreSQL 时间戳数据。

select make_date(2020, 03, 15) as t1,
make_interval(days => 1, hours => 5) as t2,
make_time(1, 2, 30.5) as t3,
make_timestamp(2020, 3, 15, 8, 20, 23.5) as t4,
make_timestamptz(2020, 3, 15, 8, 20, 23.5) as t5,
to_timestamp(1583152349) as t6
;

在这里插入图片描述

获取系统时间

PostgreSQL 提供了大量用于获取系统当前日期和时间的函数,例如 current_date、current_time、
current_timestamp、clock_timestamp()、localtimestamp、now()、statement_timestamp()等;同时还
支持延迟语句执行的 pg_sleep()等函数
参考文章

-- 当前日期
select current_date as t1,
current_time as t2,
localtime as t3, 
current_timestamp as t4,
localtimestamp as t5,
now() as t6
;

在这里插入图片描述

时区转换

AT TIME ZONE 运算符用于将 timestamp without time zone、timestamp WITH time zone 以及
time WITH time zone 转换为指定时区中的时间
timezone(zone, timestamp)函数等价于 SQL 标准中的 timestamp AT TIME ZONE zone。
官网介绍

select timestamp '2020-03-03 20:38:40' at time zone 'asia/shanghai',
 timestamp with time zone '2020-03-03 20:38:40-05:00' at time zone
'asia/shanghai',
 time with time zone '20:38:40-05:00' at time zone 'asia/shanghai';

在这里插入图片描述

一篇文章掌握Postgresql中对于日期类数据的计算和处理 一篇文章了解postgresql中的日期处理方法,帮你快速上岸 阅读详情

相关推荐

PostgreSQL日期函数实战:从基础查询到复杂时间处理

本文详细介绍了PostgreSQL日期函数的实战应用,从基础查询到复杂时间处理。涵盖日期获取、格式化、计算、时区转换等核心功能,并结合电商、会员系统等业务场景提供实用案例。特别强调性能优化和常见陷阱,帮助开发者高效处理时间数据,避免时区混乱等典型问题。

weixin_34098209的博客 293

PostgreSQL时间格式及相关函数实践

在创建表的时候,有客户需要将时间转为字符串,而且要求了具体的格式,如:20181115101010001。方便记录数据的更新时间,貌似是给Mysql使用,当时就很蛋疼,时间格式存储子啊数据库中就是varchar,导出来是字符串,导入到那边,是什么格式不是自动就转好了吗。但是没办法,还是得听客户的。解决办法如下: apple=# create table test_time(id i...

dimawei2225的博客 1818

A-Level CS 计算机科学 考试知识点——考试介绍&第1章

前言:该系列文章是本人在给学生辅导本课程的过程中结合英文教材所总结的,该系列共分为30章,主要介绍了考试的核心知识点。若需要A-Level CS 计算机科学考试辅导也可以私信我。 目录 关于A-Level CS 计算机科学考试 考试简介 考试内容 考试时间 评分情况 第1章 信息表示 本章学习内容 1.01 数字系统 1.02 数字的内部编码 整数编码(Coding for integers) 二进制编码的十进制(Binary coded decimal——BCD) 1.03.

王俊的博客 6454

PostgreSQL的日期/时间函数

零、前言 公司里有一台阿里云RDS数据库用了PPAS(Postgres PlusTM Advanced Server),在处理日期/时间时遇到一些问题,花了点时间整理如下。 一、获取当前时间 select now() select current_timestamp select localtimestamp select clock_timestamp() 有时候,我们不需要这么完整细致的时间,自然就有 select current_date select current_time selec

Super_King_的博客 1万+

Dell R730安装Windows Server 2008 R2

一、RAID驱动准备  在安装Windows server2008 R2操作系统时,如果没有发现硬盘,请将下面的阵列卡驱动先解压(在下载的.exe文件,双击点下一步会自动解压),解压后把那文件夹复制到U盘中。阵列卡 PERC9 H330 - H730 - H730P - H830 Controllers for Windows Server 2008 R2二、系统安装方法方法一:光盘安装  ①请您...

MarshLin 2万+

绕过卡巴斯基通过RPC控制lsass注入DLL

参考国外的XPN以及3gstudent大佬的文章: https://blog.youkuaiyun.com/xiangshen1990/article/details/104872566 https://gist.github.com/xpn/93f2b75bf086baf2c388b2ddd50fb5d0 原理:正常的ssp扩展(dll)可以加载到lsass进程中去,比如kerberos验证都是通...

2ed 3523

postgresql 日期函数

<div class="markdown_views"> <p>在参考“如何快速转载优快云中的博客”后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载优快云博客步骤和一些知识小笔记。 <br> 参考博客原址:<a href="http://blog.youkuaiyun.com/bolu1234/article/details/51867099" rel="nofollow" target="_blank" data

dbsjack的博客 3万+

Python爬虫实战:新浪财经股票金融数据全方位抓取教程

本教程系统介绍了新浪财经股票数据爬取技术,从静态网页解析、实时接口请求到异步爬取和数据存储,帮助你搭建了一个完整的金融数据采集流程。未来,可以结合深度学习模型进行行情预测,或者将数据接入量化交易系统,实现自动化投资。

2201_76125261的博客 2209

postgresql日期相关函数

PostgreSQL格式化函数提供一套有效的工具用于把各种数据类型(日期/时间、integer、floating point和numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成指定的数据类型。它们都遵循一个公共的调用习惯:第一个参数是待格式化的值,而第二个是定义输出或输出格式的模板。...

lixinkuan的博客 1万+

【AI编程】Vibe Coding 开发环境搭建与项目实战操作详解

Vibe Coding 开发环境搭建与项目实战操作详解

congge 7330

观测器选择与工程实践建议

摘要:永磁同步电机(PMSM)无传感器控制中,观测器选型需综合考虑应用场景、性能需求与成本。消费级(家电、工具)推荐滑模观测器(SMO),成本低、鲁棒性强;工业级(伺服、泵阀)适用扩展卡尔曼滤波器(EKF),精度高但计算复杂;车规级(EPS、主驱动)需混合观测器(SMO+EKF),兼顾全速域性能与可靠性。低速时需高频注入法,IPMSM更适用。SMO易实现但存在抖振,EKF调试复杂。未来趋势是混合架构与AI增强,提升适应性与性能。选型需权衡速度范围、电机类型、处理器能力及成本。

汽车软件开发 145

postgresql常用日期函数使用整理例子解析

PostgreSQL 提供了丰富的日期和时间函数,用于执行各种日期和时间计算。这些函数可以帮助你在 PostgreSQL 中进行日期和时间的查询和计算。

IT老农民的博客 762

FTU电科院检测学习笔记-规划

如果写到最后,还非常的有动力和兴趣,可能会举出一些特定的例子来,但不保证一定是这样。

sixtome 1097

postgresql 日期函数使用场景

postgresql 日期函数 一、本月第一天 在报表抽取时,常常需要获取本月第一天。然后作为报表抽取的查询条件。第一天常常有两种格式,一种是日期,另外一种是时间戳。 -- 本月。如2019-02 SELECT to_char(now(),'YYYY-MM') -- 本月第一天,日期格式 。 例如 2019-02-01 SELECT to_char(now(),'YYYY-MM-01') --...

uzong 1682

【雷达成像】基于matlab SAR雷达成像仿真【含Matlab源码 3750期】

SAR雷达成像仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1081

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

PostgreSQL 的日期函数用法举例

最近偶有开发同事咨询 PostgreSQL 日期函数,对日期处理不太熟悉,今天详细看了下手册的日期函数,整理如下,供参考。 一 取当前日期的函数 --取当前时间skytf=> select now(); now -------------------------------2011-06-03 14:45:43.633466+...

weixin_33978016的博客 519

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

postgresql 函数中日期的加减

在PostgreSQL中可以直接对时间进行加减运算:、 SELECT now()::timestamp + '1 year';  --当前时间加1年SELECT now()::timestamp + '-1 year';  --当前时间减1年 SELECT now()::timestamp + '1 month';  --当前时间加一个月SELECT now()::timestamp + ...

日子头上一把刀--DRY&&KISS 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【PostgreSQL】函数与操作符-时间/日期函数和操作符

EXTRACTdate_part操作符例子结果函数返回类型描述例子结果interval减去参数,生成一个使用年、月(而不是只用日)的“符号化”的结果43 年 9 月 27 日interval从current_date(在午夜)减去当前日期和时间(在语句执行期间变化);date当前日期;当前时间(一天中的时间);当前日期和时间(当前事务开始时);获得子域(等价于extract);20获得子域(等价于extract);3timestamp。

圈小圈DBA的博客 2056

postgresql 取日期的函数

postgresql 取日期的函数 目录 1.获取日期时间的方法 2.postgreSQL 获取两个时间点内每个月第一天的日期 3.Postgresql 获取当前日期所在月份的第一天 4.postgreSQL 获取两个时间点内每天的日期 5. 1.获取日期时间的方法 获取当前事务的日期和/或时间∶ CURRENT_DATE CURRENT_TIME CURRENT_TIME (precision) CURRENT_TIMESTAMP CURRENT_TIMESTAMP (precision) LOCALT

m0_37889221的博客 2501

postgresql日期和时间函数

postgresql的一些基本日期和时间函数 1,age(timestamp,timestamp) :两个时间具体时间差 postgres=# select age(timestamp '2019-01-09',timestamp '2011-03-25'); age ------------------------ 7 ye...

tpc4289的专栏 1965

PostgreSQL 时间/日期函数和操作符

PostgreSQL提供了丰富的时间/日期函数和操作符,支持日期与数字、时间间隔的算术运算。关键操作包括:日期加减天数(如'2001-09-28'+7→'2001-10-05'),时间戳加减间隔(如'2001-09-28'+'1hour'→'2001-09-28 01:00'),以及日期差计算(如'2001-10-01'-'2001-09-28'→3天)。重要函数包括:age()计算时间差,date_trunc()截取精度,extract()获取时间部分,make_系列函数构建时间对象。这些功能支持精确的时

nmxiaocui的博客 949

PostgreSQL日期和时间函数

PostgreSQL的日期和时间函数跟其他数据库还是有很大区别的,在工作中,一方面是经验的积累,经验的积累主要靠熟练掌握其数据库中的各种语法,函数,特性等,方便在需要用到的时候,拿来即用。 AGE()函数 主要有age(timestamp,timestamp)计算两个时间间隔的年龄 计算下我的年龄(不小心暴露了我的年龄…) postgres=# select age(timestamp '2019...

huangbaokang的博客 1422

PostgreSQL的日期运算计算函数使用

一:各个数据中的连接符 SqlServer的连接符:+(加号) Sqlite的连接符:.(点) PostgreSQL的连接符:||(或) 二: 今天在PostgreSQL计算日期的时候,翻了一些资料,很少,就记录下来吧~! 其中使用到的函数及变量 to_char()、Date()、now()、current_date 计算两个日期的差 current_date为今天的日期,为:2

艾斯博弈 2万+
上一篇: postgresql-字符函数
下一篇: postgresql-类型转换函数
迷失的小鹿
博客等级 码龄8年 1万+粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值