PostgreSQL日期和时间相关函数

PostgreSQL日期和时间相关函数

    • 时间类型
    • 获取当前时间
    • 时间加减
    • 格式转换
    • 相关函数

示例:

--- 提取7天前的日期
SELECT (current_date - interval '7 day')::date as start_date-- 明天的日期
SELECT (current_date + interval '1 day')::date as end_date-- 当年的第一天
SELECT DATE_TRUNC('YEAR', CURRENT_DATE)::date
-- 2023-01-01-- 当月的第一天
SELECT DATE_TRUNC('MONTH', CURRENT_DATE)::date
SELECT DATE_TRUNC('MONTH', current_timestamp)::date
-- 2023-12-01-- 当年的最后一天
SELECT (DATE_TRUNC('YEAR', CURRENT_DATE+ INTERVAL '1 year') - interval '1 day')::date
-- 2023-12-31-- 提取当前时间小时
select EXTRACT(HOUR FROM CURRENT_TIME)

时间类型

  • timestamp:时间戳。格式为1997-01-01 00:00:00,January 8 04:05:06 1999 PST

  • date:日期。格式为1997-01-01,19970101,1/1/1997,Jan-1-1997等

  • time:时间。12:00:00,120000,12:00,8:00 AM,8:00 PM等格式

  • interval:时间间隔。格式为: 1 year 2 months 3 days 4 hours 5 minutes 6 seconds

获取当前时间

  • now():获取当前完整时间
  • current_timestamp:当前事务开始时的时间戳,同 now() 函数等效
  • current_date:获取当前日期
  • current_time:获取当前时间
  • localtime:当前时间
  • localtimestamp:当前事务开始时的时间戳
-- 获取当前完整时间
select now(), current_timestamp, localtimestamp, clock_timestamp()
-- 2023-12-28 09:42:01.188 +0800, 2023-12-28 09:42:01.188 +0800, 2023-12-28 09:42:01.188, 2023-12-28 09:42:01.188 +0800-- 获取当前日期或时间
select current_date, current_time, localtime;
-- 2023-12-28, 09:43:47 +0800, 09:43:47

时间加减

select now() + interval '2 years';
select now() + interval '2 year'; 
select now() + interval '2 y';
select now() + interval '2 Y';
select now() + interval '2Y';-- 同理可得月周日时分秒: months, weeks, days, hours, minutes, seconds
SELECTnow( ) + INTERVAL '2 years',--两年后now( ) + INTERVAL '1 month',--一个月后now( ) - INTERVAL '3 week',--三周前now( ) + '10 min';--十分钟后

格式转换

-- 时间转字符串
select to_char(now(), 'YYYY-MM-DD HH-MI:SS')
-- 2023-12-28 09-56:23-- 字符串转日期
select to_date('05 Dec 2000', 'DD Mon YYYY')
-- 2000-12-05-- 字符串转时间
select to_timestamp('05 Dec 2000', 'DD Mon YYYY')
-- 2000-12-05 00:00:00.000 +0800-- Unix时间戳转时间
select to_timestamp(1703728867)
-- 2023-12-28 10:01:07.000 +0800

日期和时间字符串转换常用格式:

HH	一天的小时数(01-12)
HH12	一天的小时数(01-12)
HH24	一天的小时数(00-23)
MI	分钟(00-59)
SS	秒(00-59)
MS	毫秒(000-999)
US	微秒(000000-999999)
AM	正午标识(大写)
Y,YYY	带逗号的年(4和更多位)
YYYY	年(4和更多位)
YYY	年的后三位
YY	年的后两位
Y	年的最后一位
MONTH	全长大写月份名(空白填充为9字符)
Month	全长混合大小写月份名(空白填充为9字符)
month	全长小写月份名(空白填充为9字符)
MON	大写缩写月份名(3字符)
Mon	缩写混合大小写月份名(3字符)
mon	小写缩写月份名(3字符)
MM	月份号(01-12)
DAY	全长大写日期名(空白填充为9字符)
Day	全长混合大小写日期名(空白填充为9字符)
day	全长小写日期名(空白填充为9字符)
DY	缩写大写日期名(3字符)
Dy	缩写混合大小写日期名(3字符)
dy	缩写小写日期名(3字符)
DDD	一年里的日子(001-366)
DD	一个月里的日子(01-31)
D	一周里的日子(1-7;周日是1)
W	一个月里的周数(1-5)(第一周从该月第一天开始)
WW	一年里的周数(1-53)(第一周从该年的第一天开始)

相关函数

-- 时间间隔
select age('2023-11-11', '2023-11-1')
-- 10 days-- 时间截取
select now(), date_part('hour', now()), date_part('min', now()), date_part('sec', now())
-- 2023-12-28 10:13:14.046 +0800, 10, 13, 14.046271-- 截断至指定精度
select timestamp '2023-12-13 10:15:26', date_trunc('year', timestamp '2023-12-13 10:15:26'), date_trunc('month', timestamp '2023-12-13 10:15:26'), date_trunc('day', timestamp '2023-12-13 10:15:26'), date_trunc('hour', timestamp '2023-12-13 10:15:26')
-- 2023-12-13 10:15:26.000, 2023-01-01 00:00:00.000, 2023-12-01 00:00:00.000, 2023-12-13 00:00:00.000, 2023-12-13 10:00:00.000-- 提取时间的年,月,日,时,分,秒
SELECT EXTRACT(YEAR FROM now()), EXTRACT(MONTH FROM now()), EXTRACT(DAY FROM now()), EXTRACT(HOUR FROM now()), EXTRACT(MIN FROM now()), EXTRACT(SEC FROM now())

PostgreSQL的日期/时间函数 https://blog.csdn.net/Super_King_/article/details/121521421
PostgreSQL函数——时间函数 https://blog.csdn.net/qq_33459369/article/details/119417288

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

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

相关文章

【Transformer系列(4)】基于vision transformer(ViT)实现猫狗二分类项目实战

文章目录 一、vision transformer(ViT)结构解释二、Patch Embedding部分2.1 图像Patch化2.2 cls token2.3 位置编码(positional embedding) 三、Transformer Encoder部分(1) Multi-head Self-Attention(2) encoder block 四、head…

uni-app(优医咨询)项目实战 - 第2天

学习目标: 掌握WXML获取节点信息的用法 知道如何修改 uni-ui 扩展组件的样式 掌握 uniForm 表单验证的使用方法 能够在 uni-app 中使用自定义字体图标 一、uni-app 基础知识 uni-app 是组合了 Vue 和微信小程序的相关技术知识,要求大家同时俱备 Vue 和原生小程序的开发基础。…

Python中的else魔法:不止是if

写在前面 提到else,肯定会对应一个if。虽然在许多编程语言中这都是正确的,但 Python 却不是。Python 的else语句有着更广泛的用途。从循环语句后的else到try-except块后的else…,本文将探讨else语句鲜为人知的功能。 1. if-else else 可以与 if 一起使用,这也是最常用的…

程序包的实例和删除

目录 程序包的实例 我们创建一个程序包,内容包含上一章所创建的存储过程和函数 程序包的删除 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 程序包的实例 下面就通过具体范例来演示程序包的使用。 我们…

pyqt 按钮常用格式Qss设置

pyqt 按钮常用格式Qss设置 QSS介绍按钮常用的QSS设置效果代码 QSS介绍 Qt Style Sheets (QSS) 是 Qt 框架中用于定制应用程序界面样式的一种语言。它类似于网页开发中的 CSS(Cascading Style Sheets),但专门为 Qt 应用程序设计。使用 QSS&am…

高可用系列三:事务

都成功或者都失败是事务目标,实际中往往会采用最终一致、最大努力一致和不一致时人工介入策略。 评估事务,通常会根据业务特点,考虑对于事务相关业务之间所需的时效性、依赖联系因素,框定事务可用方案,并结合事务实现…

【论文阅读笔记】Frequency Perception Network for Camouflaged Object Detection

1.论文介绍 Frequency Perception Network for Camouflaged Object Detection 基于频率感知网络的视频目标检测 2023年 ACM MM Paper Code 2.摘要 隐蔽目标检测(COD)的目的是准确地检测隐藏在周围环境中的目标。然而,现有的COD方法主要定位…

信息系统项目管理师0083:项目管理的重要性(6项目管理概论—6.2项目基本要素—6.2.2项目管理的重要性)

点击查看专栏目录 文章目录 6.2.2项目管理的重要性 6.2.2项目管理的重要性 项目管理就是将知识、技能、工具与技术应用于项目活动,以满足项目的要求。通过合理地应用并整合特定的项目管理过程,项目管理使组织能够有效并高效地开展项目。 有效的项目管理能…

Rust个人学习之Rust操作Mysql数据库

Rust 使用 mysql 的 crate 进行 mysql 的连接操作,特进行记录。 写在前面 如果想使用 mysql 需要在 CargoToml 文件中增加 mysql 的引用 [dependencies] chrono "0.4" mysql "*"连接数据库 数据库信息如下: 字段数据数据库地…

可靠的智能组网系统有哪些?

天联是一种可靠的智能组网解决方案,在现今复杂网络环境下具备明显的优势。本文将介绍天联组网以及其所带来的诸多优势。 天联组网的优势 天联组网具有以下优势,使其成为一种可靠的智能组网方案: 无网络限制:天联组网能够解决复杂…

Tire 字典树、前缀树

字典树(又称单词查找树或Trie树)是一种树形结构,它是哈希树的变种,通常用于统计、排序和保存大量的字符串(但不仅限于字符串)。字典树在搜索引擎系统中常用于文本词频统计。它的主要优点在于能够利用字符串…

每日一题(力扣213):打家劫舍2--dp+分治

与打家劫舍1不同的是它最后一个和第一个会相邻,事实上,从结果思考,最后只会有三种:1 第一家不被抢 最后一家被抢 2 第一家被抢 最后一家不被抢 3 第一和最后一家都不被抢 。那么,根据打家劫舍1中的算法 我们能算出在i…

excel办公系列-图表元素及其作用

Excel图表元素及其作用 Excel图表由各种元素组成,每个元素都有其特定的作用,可以帮助我们更清晰地传达数据信息。下面将介绍Excel图表中常见的一些元素及其作用,并附上相关截图。 原始数据 月份 网站访问量 (万次) 销售额 (万…

FIFO Generate IP核使用——Data Counts页详解

在Vivado IDE中,当看到一个用于设置数据计数选项的选项卡时,需要注意的是,尽管某些选项值可能因为当前的配置而显示为灰色(即不可选或已禁用),但IDE中显示的有效范围值实际上是你可以选择的真实值。即使某些…

opencv t函数

在OpenCV中&#xff0c;t函数通常用于转置矩阵&#xff08;Transpose&#xff09;。这意味着矩阵的行和列互换位置。 在C中&#xff0c;使用OpenCV库进行矩阵转置的代码如下所示&#xff1a; #include <opencv2/opencv.hpp> #include <iostream>int main() {// 创…

《十二》Qt各种对话框之FileDialog文件对话框及QMessageBox 消息对话框

QFileDialog 对话框 选择打开一个文件 若要打开一个文件&#xff0c;可调用静态函数 QFileDialog::getOpenFileName()&#xff0c;“打开一个文件”按钮的响应代码如下&#xff1a; void Dialog::on_btnOpen_clicked() { //选择单个文件QString curPathQDir::currentPath()…

基于React实现B站评论区

今天继续来学习一下React&#xff0c;使用React实现B站评论区&#xff0c;如下图&#xff1a; 在使用React开发类似B站评论区的功能时&#xff0c;我们需要考虑以下几个关键点来构建一个基本的评论系统&#xff1a; 1. 设计组件结构 首先&#xff0c;设计组件结构是关键。至少…

Unity Animation--动画剪辑

Unity Animation--动画剪辑 动画剪辑 动画剪辑是Unity动画系统的核心元素之一。Unity支持从外部来源导入动画&#xff0c;并提供创建动画剪辑的能力使用“动画”窗口在编辑器中从头开始。 外部来源的动画 从外部来源导入的动画剪辑可能包括&#xff1a; 人形动画 运动捕捉…

Python中关于子类约束的开发规范

Python中关于子类约束的开发规范 我们知道&#xff0c;在java和C#中有一种接口的类型&#xff0c;用来约束实现该接口的类&#xff0c;必须要定义接口中指定的方法 而在python中&#xff0c;我们可以基于父类子类异常来仿照着实现这个功能 class Base:def func():raise NotI…

css---浮动知识点精炼汇总

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 浮动简单理解与介绍 这是我们普通的页面标签效果。 每个标签从上到下依次排列。 浮动顾名思义就是让这个标签飞翔起来。 他飞起来后&#xff0c;后面的标签来到他的位置上。 而浮动的标签就会显示在标签的上面。…