当前位置: 首页 > news >正文

postgresql-日期函数

postgresql-日期函数

  • 日期时间函数
  • 计算时间间隔
  • 获取时间中的信息
  • 截断日期/时间
  • 创建日期/时间
  • 获取系统时间
    • CURRENT_DATE
    • 当前事务开始时间
  • 时区转换

日期时间函数

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

计算时间间隔

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

select age(timestamp '2020-12-31', timestamp '2020-01-01'), age(timestamp
'2020-01-01');

在这里插入图片描述

获取时间中的信息

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

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');

在这里插入图片描述
通过返回字段的标题可以看出,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,年份。

截断日期/时间

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

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');

在这里插入图片描述
date_trunc 函数支持以下截断精度:

  • microseconds
  • milliseconds
  • second
  • minute
  • hour
  • day
  • week
  • month
  • quarter
  • year
  • decade
  • century
  • millennium

创建日期/时间

make_date(year int, month int, day int)函数用于创建一个日期:

select make_date(2020, 03, 15);

在这里插入图片描述
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)函数通过指定年、月、日等信息创建一个时间间隔

select make_interval(days => 1, hours => 5);

在这里插入图片描述
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 ])函数通过指定年、月、日、时、分、秒创建一个带时区的时间戳。如果没有指
定时区,使用当前时区。

select make_timestamptz(2020, 3, 15, 8, 20, 23.5);

在这里插入图片描述
to_timestamp(double precision)函数将 Unix 时间戳(自从 1970-01-01 00:00:00+00 以来的秒
数)转换为 PostgreSQL 时间戳数据。

select to_timestamp(1583152349);

在这里插入图片描述

获取系统时间

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

CURRENT_DATE

CURRENT_DATE 函数用于获取数据库服务器的当前日期:

select current_date;

在这里插入图片描述
调用该函数时不需要在函数名后加括号。该日期是服务器的日期,不是客户端的日期。

当前事务开始时间

以下函数可以用于获取数据库服务器的当前时间:

CURRENT_TIME
CURRENT_TIME(precision)
LOCALTIME
LOCALTIME(precision)CURRENT_TIMESTAMP
CURRENT_TIMESTAMP(precision)
LOCALTIMESTAMP
LOCALTIMESTAMP(precision)

时区转换

AT TIME ZONE 运算符用于将 timestamp without time zone、timestamp WITH time zone 以及
time WITH time 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';

在这里插入图片描述
timezone(zone, timestamp)函数等价于 SQL 标准中的 timestamp AT TIME ZONE zone。

还有一些关于日期时间的函数,可以参考官方文档

相关文章:

postgresql-日期函数

postgresql-日期函数 日期时间函数计算时间间隔获取时间中的信息截断日期/时间创建日期/时间获取系统时间CURRENT_DATE当前事务开始时间 时区转换 日期时间函数 PostgreSQL 提供了以下日期和时间运算的算术运算符。 计算时间间隔 age(timestamp, timestamp)函数用于计算两…...

Android11去掉Setings里的投射菜单条目

Android11去掉【设置】--【已连接的设备】--【连接偏好设置】里的投射菜单条目&#xff0c;具体如下&#xff1a; commit 0c0583e6ddcdea21ec02db291d9a07d90f10aa59 Author: wzh <wzhincartech.com> Date: Wed Jul 21 16:37:13 2021 0800去掉投射菜单Change-Id: Id7f…...

fnm(Node.js 版本管理器)

fnm是什么&#xff1f; fnm是一款快速简单跨平台的 Node.js 版本管理器&#xff0c;使用 Rust 构建。 fnm怎么使用&#xff1f; 查看node 已安装列表 fnm list node 版本切换 fnm use 版本号 fnm use 16.0.0...

Apipost:为什么是开发者首选的API调试工具

文章目录 前言正文接口调试接口公共参数、环境全局参数的使用快速生成并导出接口文档研发协作接口压测和自动化测试结论 前言 Apipost是一款支持 RESTful API、SOAP API、GraphQL API等多种API类型&#xff0c;支持 HTTPS、WebSocket、gRPC多种通信协议的API调试工具。除此之外…...

Echarts图表坐标轴文字太长,省略显示,鼠标放上显示全部(vue)

注意&#xff1a;记得加上这个&#xff0c;触发事件&#xff0c; triggerEvent: true,重点&#xff1a;下面就是处理函数&#xff0c;在实例化图表的时候使用&#xff0c;传入参数是echarts的实例 // 渲染echartsfirstBarChart() {const that thislet columnar echarts.init…...

C语言控制语句——跳转关键字

循环和switch专属的跳转&#xff1a;break循环专属的跳转&#xff1a;continue无条件跳转&#xff1a;goto break 循环的break说明 某一条件满足时&#xff0c;不再执行循环体中后续重复的代码&#xff0c;并退出循环 需求&#xff1a;一共吃5碗饭, 吃到第3碗吃饱了, 结束吃饭…...

C#,《小白学程序》第五课:队列(Queue)

日常生活中常见的排队&#xff0c;软件怎么体现呢&#xff1f; 排队的基本原则是&#xff1a;先到先得&#xff0c;先到先吃&#xff0c;先进先出 1 文本格式 /// <summary> /// 《小白学程序》第五课&#xff1a;队列&#xff08;Queue&#xff09; /// 日常生活中常见…...

【【萌新的STM32学习25--- USART寄存器的介绍】】

萌新的STM32学习25- USART寄存器的介绍 STM32–USART寄存器介绍&#xff08;F1&#xff09; 控制寄存器1 &#xff08;CR1&#xff09; 位13&#xff1a; 使能USART UE 0&#xff1a; USART分频器和输出被禁止 1&#xff1a; USART模块使能 位12 &#xff1a; 配置8个数据位…...

SpringBootWeb案例 Part 5

4. 配置文件 员工管理的增删改查功能我们已开发完成&#xff0c;但在我们所开发的程序中还一些小问题&#xff0c;下面我们就来分析一下当前案例中存在的问题以及如何优化解决。 4.1 参数配置化 在我们之前编写的程序中进行文件上传时&#xff0c;需要调用AliOSSUtils工具类&…...

【ES6】Promise.race的用法

Promise.race()方法同样是将多个 Promise 实例&#xff0c;包装成一个新的 Promise 实例。 const p Promise.race([p1, p2, p3]);上面代码中&#xff0c;只要p1、p2、p3之中有一个实例率先改变状态&#xff0c;p的状态就跟着改变。那个率先改变的 Promise 实例的返回值&#…...

PMP - 敏捷 3355

三个核心 产品负责人 负责最大化投资回报&#xff08;ROI&#xff09;&#xff0c;通过确定产品特性&#xff0c;把他们翻译成一个有优先级的列表 为下一个 sprint 决定在这个列表中哪些应该优先级最高&#xff0c;并且不断调整优先级以及调整这个列表 职责是定义需求、定义…...

Mapbox-gl 关闭所有Popup,以及关闭按钮出现黑色边框bug

1.官方示例 var popup new mapboxgl.Popup().addTo(map);popup.remove(); 很明显&#xff0c;需要记录popup对象&#xff0c;管理起来比较麻烦。 2.本人采用div的方式关闭所有的popup&#xff0c;在map对象上新增加方法 map.closePopupmapView.popupClear function(){$(&q…...

RE:从零开始的车载Android HMI(四) - 收音机刻度尺

最近比较忙&#xff0c;研究复杂的东西需要大量集中的时间&#xff0c;但是又抽不出来&#xff0c;就写点简单的东西吧。车载应用开发中有一个几乎避不开的自定义View&#xff0c;就是收音机的刻度条。本篇文章我们来研究如何绘制一个收音机的刻度尺。 本系列文章的目的是在讲…...

评估安全 Wi-Fi 接入:Cisco ISE、Aruba、Portnox 和 Foxpass

在当今不断变化的数字环境中&#xff0c;对 Wi-Fi 网络进行强大访问控制的需求从未像现在这样重要。各组织一直在寻找能够为其用户提供无缝而安全的体验的解决方案。 在本博客中&#xff0c;我们将深入探讨保护 Wi-Fi&#xff08;和有线&#xff09;网络的四种领先解决方案——…...

java 泛型作为方法的返回值的封装

问题背景 业务需要&#xff0c;经常需要http方式调用某服务&#xff0c;然后某服务返回特定类型的返回内容。 类似 String resStr xxxHttpClient.post() &#xff0c;然后它返回一个字符串&#xff0c;你还需要反序列化成某种格式的。 返回值可以反序列化成的形式如下&#…...

ASP.NET Core 中基于 Minimal APIs 的Web API

基于 Minimal APIs 的Web API Minimal APIs 是ASP.NET Core中快速构建 REST API 的方式&#xff0c;可以用最少的代码构建全功能的REST API。比如下面三行代码&#xff1a; var app WebApplication.Create(args); app.MapGet("/", () > "Hello World!&quo…...

Unity ProBuilder SetUVs 不起作用

ProBuilder SetUVs 不起作用 &#x1f41f; 需要设置face.manulUV true public static void Set01UV(this ProBuilderMesh mesh){foreach (var face in mesh.faces){face.manualUV true;//设置为手动uv}var vertices mesh.GetVertices().Select(v > v.position).ToArray(…...

c#接口(interface)

概述&#xff1a; 在C#中&#xff0c;接口是一种定义了一组相关方法、属性和事件的规范。接口可以被类或结构体实现&#xff0c;以提供一种方式来定义类之间的契约或协议。 接口定义了一组成员&#xff0c;这些成员没有具体的实现。实现接口的类必须提供这些成员的具体实现。…...

SSH远程连接macOS服务器:通过cpolar内网穿透技术实现远程访问的设置方法

文章目录 前言1. macOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接macOS3.1 macOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接macOS 4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址 5. 使用固定TCP端口地址ssh远程 …...

【C++】Visual Studio EditorConfig 格式设置

【C】Visual Studio EditorConfig 格式设置 文章目录 【C】Visual Studio EditorConfig 格式设置I - EditorConfig1.1 - 通用设置indent_styleindent_sizetab_widthend_of_linecharsettrim_trailing_whitespaceinsert_final_newline II - Visual Studio 特定键值缩进设置cpp_in…...

【紧急更新】Midjourney 6.2已悄悄禁用glass关键词!替代方案+3套可直接复用的prompt模板(限24小时公开)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney 6.2玻璃质感禁用事件全貌解析 2024年7月&#xff0c;Midjourney官方悄然更新至v6.2版本&#xff0c;并在未发布正式公告的情况下&#xff0c;对部分高精度材质描述词实施了隐性限制——其中…...

别再乱用sleep了!Linux C++高精度延时实战指南(从usleep到std::sleep_for的避坑总结)

Linux C高精度延时实战&#xff1a;从传统陷阱到现代方案 在开发高性能服务器、嵌入式实时系统或音视频处理程序时&#xff0c;精确控制时间延迟是保证系统稳定性和响应速度的关键。许多开发者在使用sleep、usleep等延时函数时&#xff0c;常常遇到CPU占用率飙升、时序漂移或信…...

OpenHarmony 5.0.3兼容性认证实战:BQ3576HM开发板全栈移植与调优

1. 项目概述&#xff1a;一次关键的“兼容性认证”实战最近&#xff0c;我们团队基于贝启科技的BQ3576HM开发板套件&#xff0c;成功通过了OpenHarmony 5.0.3 Release版本的兼容性测评。这听起来像是一个简单的“通过测试”的新闻&#xff0c;但对于真正在一线做OpenHarmony设备…...

Perplexity经济新闻搜索:5步构建专属财经情报流水线(附2024最新API调用参数)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity经济新闻搜索 Perplexity 是一款基于大语言模型的实时信息检索工具&#xff0c;其核心优势在于融合权威信源与语义理解能力&#xff0c;特别适用于高频更新、高时效性要求的经济新闻领域。用…...

9 款 AI 毕业论文工具硬核横评:okbiye 领衔,解锁高效合规写作新路径

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 毕业季的本科论文写作&#xff0c;向来是耗时耗力的 “攻坚战”。选题迷茫、大纲混乱、格式反复出错、查重屡屡超标、AI 痕迹过重难通过检测…...

华住房态检查表

...

UE5 VR开发避坑实录:从Pico串流到圆盘位移,我踩过的那些‘雷’

UE5 VR开发实战避坑指南&#xff1a;从Pico串流到圆盘位移的深度解析 第一次打开虚幻引擎5的VR模板时&#xff0c;那种兴奋感至今记忆犹新。但很快&#xff0c;现实就给了我一记重拳——Pico设备死活连不上开发机&#xff0c;项目莫名其妙闪退&#xff0c;圆盘位移功能在头显里…...

【Redis | 第一篇】Redis常见命令

目录 一、Redis数据结构介绍 二、Redis的通用命令 三、String类型 3.1 key的层级结构 四、Hash类型 五、List类型 六、Set类型 一、Redis数据结构介绍 Redis是一个key-value的数据库&#xff0c;key一般是字符串类型&#xff0c;不过value的类型多种多样。 二、Redis的…...

别再只用labelme了!用ENVI 5.3的ROI工具给遥感影像打深度学习标签,保姆级避坑指南

遥感影像标注革命&#xff1a;ENVI ROI工具在深度学习标签制作中的专业实践 引言 在遥感影像分析与深度学习模型训练的工作流中&#xff0c;数据标注环节往往成为制约效率提升的关键瓶颈。传统标注工具如labelme虽然在小尺寸自然图像处理中表现出色&#xff0c;但当面对动辄数G…...

Cadence软件安装后找不到图标?别慌,手把手教你从开始菜单启动Capture和Allegro

Cadence软件安装后找不到图标&#xff1f;别慌&#xff0c;手把手教你从开始菜单启动Capture和Allegro 刚完成Cadence软件安装的兴奋感&#xff0c;往往会被桌面上空空如也的现状瞬间浇灭。这就像拿到一台新电脑却发现没有电源键——明明安装了专业EDA工具&#xff0c;却连入口…...