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。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60909.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

恢复已删除的git分支

1.打开对应项目文件夹目录,在目录下执行git命令 2.执行命令 git reflog --dateiso , 找到最后一次commit 的id 3. 执行git checkout -b 新建分支名称 commitId 就会基于commitId这次提交时工作区新建一个分支,就能达到我们找到删除分支的代码效果。 4.直接看ide…

ABB PCD231B101励磁控制模块

电磁励磁控制: PCD231B101 模块专门设计用于电磁励磁设备的控制,以确保发电机的励磁电流和电压维持在合适的水平。 多通道控制: 这种模块通常具有多个控制通道,可用于同时监测和控制多台电力发电机。 通讯接口: PCD2…

二叉树的前序遍历

目录 题目题目要求示例 解答方法一、实现思路时间复杂度和空间复杂度代码 方法二、实现思路时间复杂度和空间复杂度代码 题目 二叉树的前序遍历 题目要求 题目链接 示例 解答 方法一、 递归法 实现思路 使用递归依次将该结点的数据,该结点的左子树的数据&am…

0202hdfs的shell操作-hadoop-大数据学习

文章目录 1 进程启停管理2 文件系统操作命令2.1 HDFS文件系统基本信息2.2 介绍2.3 创建文件夹2.4 查看指定文件夹下的内容2.5 上传文件到HDFS2.6 查看HDFS文件内容2.7 下载HDFS文件2.8 HDFS数据删除操作 3 HDFS客户端-jetbrians产品插件3.1 Big Data Tools 安装3.2 配置windows…

WPF+Prism+WebApi 学习总结

一、基本概念 WPF:WPF(Windows Presentation Foundation)是(微软推出的)基于Windows的用户界面框架,提供了统一的编程模型,语言和框架,做到了分离界面设计人员与开发人员的工作;WPF…

Android开发之性能测试工具Profiler

前言 性能优化问题,在我们开发时都会遇到,但是在小厂和对自己要求不严格的情况下,我都很少去做性能优化; 在性能优化上,基本大家都是通过自己的开发经验和性能分析工具来发现问题,今天给大家分享一下小编最…

Docker从认识到实践再到底层原理(一)|技术架构

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

多张图片转为pdf怎么弄?

多张图片转为pdf怎么弄?在网络传输过程中,为了避免图片格式文件出现差错,并确保图片的清晰度和色彩不因不同设备而有所改变,常见的做法是将图片转换为PDF格式。然而,当涉及到多张图片时,逐一转换将会变得相…

MybatisPlus入门

MybatisPlus入门 1.MyBatis-Plus1.1 ORM介绍1.2 MyBatis-Plus介绍 2.代码链接数据库2.1 创建项目2.2 添加依赖2.3 链接数据库2.3.1 准备数据库2.3.2 链接数据库2.3.3 创建实体类 2.4 创建Mapper层2.5 创建Controller层2.6 浏览器访问测试 MybatisPlus官方网站: 官网…

微信8.0.41更新来了,看看有哪些变化吧

微信给我们带来了极大的方便,无论是日常聊天还是工作沟通,几乎离不开它。 时不时会给我一种熟悉的陌生感。 这个功能,好像我之前是没见过的。 就比如公众号信息流,刷着刷着就会发现,怎么会有看一看的信息推流会突然出现…

pytest pytest.ini 配置日志输出至文件

创建pytest.ini 文件 [pytest] log_file pytest_log.txt log_file_level INFO log_file_date_format %Y-%m-%d %H:%M:%S log_file_format %(asctime)s | %(filename)s | %(funcName)s | line:%(lineno)d | %(levelname)s | %(message)s import pytest import loggingdef …

【Linux】线程安全-互斥同步

文章目录 线程安全问题的引入线程互斥互斥概念互斥锁互斥锁的计数器当中如何保证原子性互斥锁基础API初始化互斥锁变量函数动态初始化静态初始化 加锁函数阻塞加锁非阻塞加锁带有超时时间的加锁 解锁函数销毁互斥锁函数 线程同步线程同步的必要性条件变量条件变量的使用原理条件…

从零开始的Hadoop学习(五)| HDFS概述、shell操作、API操作

1. HDFS 概述 1.1 HDFS 产出背景及定义 1)HDFS 产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切 需要一种系统来管理多台机器上的…

基于飞腾芯片的设计与调试入门指导

一、啥是自主可控 国产CPU现在厂家细算起来其实有很多,现在华为、小米也在做自己的CPU,瑞芯微、全志等的SoC现在也是广泛应用。但是真正能叫做自主可控的CPU厂商,只有6家。那啥是自主可控?首先来不严谨的讲下现在数字芯片是怎么做的设计。FPGA大家都知道,可以通过Verilog…

SOD-123FL贴片整流二极管,有哪些型号?

近日发现,客户对整流二极管的需求特别大。常有客户前来东沃电子咨询整流二极管型号参数、选型、替代、价格、交期、样品等方面的问题。那么,关于DS1A、DS1B、DS1D、DS1G、DS1J、DS1K、DS1M贴片整流二极管,您知道多少呢?东沃电子推…

【微服务部署】06-日志集成

文章目录 1. EFK日志三件套集成1.1 核心组件1.2 部署 2. Exceptionless日志系统2.1 Exceptionless核心特性2.2 Exceptionless部署文件2.3 K8s中使用Exceptionless 1. EFK日志三件套集成 1.1 核心组件 Elasticsearch(存储)Fluentd(收集器&am…

W5100S-EVB-PICO主动PING主机IP检测连通性(十)

前言 上一章节我们用我们开发板在UDP组播模式下进行数据回环测试,本章我们用开发板去主动ping主机IP地址来检测与该主机之间网络的连通性。 什么是PING? PING是一种命令, 是用来探测主机到主机之间是否可通信,如果不能ping到某台…

LeetCodeHot100python版本:单调栈,栈,队列,堆

单调栈 739. 每日温度 42. 接雨水 双指针 单调栈(横向求解) ​​​​​​84. 柱状图中最大的矩形 栈和队列 队列:先入先出 栈:先入后出 两个栈 模拟 队列 一个队列 可以模拟 栈 20. 有效的括号 ​​​​​​155. 最小栈 394. 字符串解码 堆 215. 数组中的第K个最大元素 (…

STM32 Cubemx 同名外设中断及回调

文章目录 前言示例工程个人理解 前言 最近在学习STM32,采用HAL库开发方式。记录一下同名外设中断及回调。 这里提及的同名外设指USART1/2之类的相同外设,但不是同一个instance。 示例工程 以使用cubemx配置两个同名外设EXTI0/EXT4为例。 在NVIC配置…

JS三座大山 —— 原型和原型链

系列文章目录 内容链接2023前端面试笔记HTML52023前端面试笔记CSS3 文章目录 系列文章目录前言一、原型是什么?二、原型链是什么?2.1 原型链全方面解析2.2 为什么构造函数也有原型? 总结 前言 理解原型和原型链可以帮助我们更好地理解 Java…