PostgreSQL 时间函数 extract函数和epoch 新纪元时间的使用

2023-11-12

Extract 属于 SQL 的 DML(即数据库管理语言)函数,同样,InterBase 也支持 Extract,它主要用于从一个日期或时间型的字段内抽取年、月、日、时、分、秒数据,因此,它支持其关健字 YEAR、MONTH、DAY、HOUR、MINUTE、SECOND、WEEKDAY、YEARDAY。

计算时间差天数

select extract(day FROM (age('2017-12-10'::date , '2017-12-01'::date)));

计算时间差秒数

select extract(epoch FROM (now() - (now()-interval '1 day') ));

extract函数格式:
extract (field from source)
extract函数是从日期或者时间数值里面抽取子域,比如年、月、日等。source必须是timestamp、time、interval类型的值表达式。field是一个标识符或字符串,是从源数据中的抽取的域。
1. century (世纪)
test=# select extract (century from timestamp '2017-07-31 22:18:00');
 date_part
-----------
        21
(1 row)
2. year (年)
test=# select extract (year from timestamp '2017-07-31 22:18:00');
 date_part
-----------
      2017
(1 row)
3. decade (得到年份除10的值)
test=# select extract (decade from timestamp '2017-07-31 22:18:00');
 date_part
-----------
       201
(1 row)
4. millennium(得到第几个千年,0-1000第一个,1001-2000第二个,2001-3000第三个)
test=# select extract (millennium from timestamp '2017-07-31 22:18:00');
 date_part
-----------
         3
(1 row)
5. quarter (季度)
test=# select extract (quarter from timestamp '2017-07-31 22:18:00');
 date_part
-----------
         3
(1 row)
6. month (月份)
test=# select extract (month from timestamp '2017-07-31 22:18:00');
 date_part
-----------
         7
(1 row)
test=# select extract (month from interval '2 years 11 months');
 date_part
-----------
        11
(1 row)
7. week (返回当前是几年的第几个周)
test=# select extract (week from timestamp '2017-07-31 22:18:00');
 date_part
-----------
        31
(1 row)
8. dow (返回当前日期是周几,周日:0,周一:1,周二:2,...)
test=# select extract (dow from timestamp '2017-07-31 22:18:00');
 date_part
-----------
         1
(1 row)
9. day (本月的第几天)
test=# select extract (day from timestamp '2017-07-31 22:18:00');
 date_part
-----------
        31
(1 row)
10. doy (本年的第几天)
test=# select extract (doy from timestamp '2017-07-31 22:18:00');
 date_part
-----------
       212
(1 row)
11. hour (小时)
test=# select extract (hour from timestamp '2017-07-31 22:18:00');
 date_part
-----------
        22
(1 row)
12. min (得到时间中的分钟)
test=# select extract (min from timestamp '2017-07-31 22:18:00');
 date_part
-----------
        18
(1 row)
13. sec (返回时间中的秒)
test=# select extract (sec from timestamp '2017-07-31 22:18:00');
 date_part
-----------
         0
(1 row)

新纪元时间 Epoch 是以 1970-01-01 00:00:00 UTC 为标准的时间,将目标时间与 1970-01-01 00:00:00
时间的差值以秒来计算 ,单位是秒,可以是负值; 有些应用会将时间存储成epoch 时间形式,以提高读取效率,
下面演示下 pg 中 epoch 时间的使用换算方法。


--1 将 time stamp 时间转换成 epoch 时间
francs=> select extract(epoch from timestamp without time zone '1970-01-01 01:00:00');
 date_part 
-----------
      3600
(1 row)

francs=> select extract(epoch from timestamp without time zone '1970-01-01 02:00:00');
 date_part 
-----------
      7200
(1 row)

francs=> select extract(epoch from interval '+1 hours');
 date_part 
-----------
      3600
(1 row)


francs=> select extract(epoch from interval '-1 hours');
 date_part 
-----------
     -3600
(1 row)

--2 将epoch 时间转换成  time stamp  时间
francs=> select timestamp without time zone 'epoch' + 3600 * interval '1 second';
      ?column?       
---------------------
 1970-01-01 01:00:00
(1 row)

francs=> select timestamp without time zone 'epoch' + 7200 * interval '1 second';
      ?column?       
---------------------
 1970-01-01 02:00:00
(1 row)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostgreSQL 时间函数 extract函数和epoch 新纪元时间的使用 的相关文章

  • php 中每个数据库扩展的字符串如何转义?

    在任何人对这个问题的性质做出结论之前 我已经知道了参数化 准备好的语句 http en wikipedia org wiki Prepared statements Parameterized statements并尽可能使用它们 不幸的是
  • pgadmin:收到“详细信息:用户没有 CONNECT 权限。”错误

    我在 Mac Yosemite 上使用 pgAdmin III 我创建了一个角色 discount 和一个数据库 discount 在 pgadmin 工具中 如何授予用户 discount 对数据库 discount 的连接权限 以及表读
  • InnoDB vs. MyISAM 插入查询时间

    我有一个大型 MySQL 表 约 1000 万行 6 5G 用于读取和写入 它是MyISAM 由于MyISAM 的所有表写入锁 我获得了很多锁 我决定尝试迁移到 InnoDB 推荐用于读 写表 它只锁定写入时的特定行 转换后 我测试了插入语
  • 在 postgresql 中,如何在 jsonb 键上返回布尔值而不是字符串?

    在下面的查询中 isComplete 和 isValid 以字符串形式返回 但是 它们被保存为布尔值 如何获取要返回的这些字段的布尔表示形式 query SELECT data gt gt id AS id data gt gt name
  • 与 Postgres 的 TCP 连接安全吗?需要 SSL 吗?

    早上好 我正在浏览 Postgresql 配置文件 最近注意到有一个ssl选项 我想知道什么时候需要这样做 假设您有一个应用程序服务器和一个数据库服务器 不在专用网络内运行 如果用户尝试登录 如果未启用 SSL 应用程序服务器在查找用户密码
  • PostgreSQL、Npgsql 返回 42601:“$1”处或附近的语法错误

    我正在尝试使用 Npgsql 和 或 Dapper 来查询表 但我不断遇到Npgsql PostgresException 42601 syntax error at or near 1 这是我用 NpgsqlCommand 尝试的结果 u
  • 具有位变化的 PostgreSQL 位运算符“不能与不同大小的位字符串”

    我有一个变化的位掩码字段 我想对其执行按位与操作 PG Error ERROR cannot AND bit strings of different sizes SELECT groups FROM groups WHERE read r
  • Postgres Notify 不适用于逻辑复制

    我正在使用逻辑复制将数据从 Postgres 10 4 复制到另一个 Postgres 10 4 实例 订阅者有多个触发器将事件记录到单个表中 该表有一个触发器 该触发器执行另一个函数 返回触发器 来为下游侦听器调用 NOTIFY 审计表上
  • MySQL 中如何使用继承?

    所以我正在读一本关于数据库设计原理的书 并读到了有关继承的章节 但我对如何在 MySQL 中将子类与其超类 连接 感到困惑 The table structure would for example look like this 那么我如何
  • SQL Server:比较两个表中的列

    我最近完成了从某些应用程序的旧版本到当前版本的迁移 在迁移数据库时遇到了一些问题 我需要一个可以帮助我比较两个表中的列的查询 我的意思不是行中的数据 我需要比较列本身来弄清楚我错过了表结构的哪些变化 看一下红门 SQL 比较 http ww
  • psycopg 错误,列不存在

    我不断收到这个 错误 psycopg2 ProgrammingError 列 someentry 不存在 该错误表明该列someentry不存在时someentry不是列 它只是要输入数据库的值 这是给出错误的代码 cur execute
  • 将多个表中的数据获取到单行中,同时连接一些值

    我正在尝试从表中检索数据并将多行合并为一列 而不重复任何信息 我有以下表格 简介 资格 项目 Profile pro id surname firstname 1 John James 2 King Fred 3 Luxury Yachts
  • Knex 与 PostgreSQL 选择查询在多个并行请求上性能极度下降

    In brief 我正在开发一个 梦想中的 游戏 我的后端堆栈是 Node js 和带有 Knex 的 PostgreSQL 9 6 我在这里保存所有玩家数据 我需要经常请求它 其中一个请求需要进行 10 个简单的选择来提取数据 这就是问题
  • 如何列出表外键

    有没有办法使用 SQL 列出给定表的所有外键 我知道表名称 架构 我可以将其插入 您可以通过 information schema 表来完成此操作 例如 SELECT tc table schema tc constraint name t
  • 多态查询的数据库压力

    我在 JPA 中使用了超过 5 个子类的多态抓取 执行的查询如下 explain SELECT ohlcrawbea0 trade time AS trade ti3 11 ohlcrawbea0 avg price AS avg pric
  • mysql字符串转换返回0

    why select aaa 0返回 1 真 如果我有一张像这样的桌子 userid pass user1 pas1 如果我查询 select from table where userid 0 and pass 0 它给了我所有的行 My
  • 出现操作错误:致命:抱歉,太多客户端已经在使用 psycopg2

    我在使用 psycopg2 时收到错误 OperationalError FATAL 抱歉 已有太多客户端 完成连接实例后 我将调用 close 方法 我不确定是什么原因造成的 这是我第一次使用 python 和 postgresql 但我
  • 如何查明数据何时插入到 Postgres 中?

    我继承了一个现有的充满数据的 Postgres 数据库 大多数数据都有 created date 列值 一些早期数据是在跟踪之前插入的 是否有一个 Postgres 元数据表隐藏在某处 可以跟踪何时INSERT查询完成了吗 Postgres
  • 将 postgres 连接到 django 时遇到问题

    以下文档来自Django Postgres 文档 https docs djangoproject com en 4 1 ref databases postgresql notes我添加到我的settings py 在我设置的设置中 DA
  • 时态数据库设计,有一些变化(实时行与草稿行)

    我正在考虑实现对象版本控制 同时需要同时拥有活动对象和草稿对象 并且可以利用某人在这方面的经验的见解 因为我开始怀疑是否有可能在没有潜在可怕的黑客攻击的情况下实现这一点 为了示例 我将把它分解为带有标签的帖子 但我的用例更一般 涉及缓慢改变

随机推荐

  • NIO效率高的原理之零拷贝与直接内存映射

    前言 在笔者上一篇博客 详解了NIO 并总结NIO相比BIO的效率要高的三个原因 点击查看 这篇博客将针对第三个原因 进行更详细的讲解 首先澄清 零拷贝与内存直接映射并不是Java中独有的概念 并且这两个技术并不是等价的 零拷贝 零拷贝是指
  • python循环经典例题_Python学习之while循环练习题

    Python自近两年在国内兴起之后 引起了很多IT界小伙伴们的注意 开始学习Python的朋友逐渐增多 但是学习时发现 循环一处开始默默的考验逻辑思维了 还是再做几个练习题来梳理复习一下吧 1 使用while循环输出1 2 3 4 5 6
  • 51单片机汇编指令

    注 Rn与Ri中n 0 7 i 0 1 另外Cy是进位位 同时也是状态位 标志位 数据传送类指令 内部数据传送指令 助记符 作用 寻址方式 机器周期 字节数 MOV A Rn 将Rn的内容传送给A 寄存器 1 1 MOV A direct
  • java selenium (一) selenium 介绍

    Selenium 是目前用的最广泛的Web UI 自动化测试框架 本系列文章 将深入简出来讲解selenium 的用法 文章的末尾处 有整个系列的链接 阅读目录 selenium 的命名 selenium 的意思是 硒 有点QTP 杀手的意
  • java Canvas画图学习小结

    主函数 package paint import javax swing JFrame public class PaintMain JFrame jFrame public static void main String args TOD
  • 函数开始处的MOV EDI, EDI的作用收藏

    函数开始处的MOV EDI EDI的作用收藏 BYTE JMP 10 0x8b 0xFF 0x55 0x8b 0xEC 0xE9 0x00 0x40 0x00 0x00 0x00 Posted on 2009 04 01 11 19 S l
  • 数据增强方法--Cutout实现及结果分析

    数据增强方法 Cutout实现及结果分析 问题背景 Cutout简介 实现细节 实验设置 代码实现 结果展示 参考文献 问题背景 近年来 深度学习在计算机视觉领域取得了相当大的进展 并且在许多具有挑战性的任务中取得了最新的性能 如对象识别
  • 怎么样可以访问外部网络对于无公网IP的阿里云ESC服务器

    新购买了3台阿里云ECS服务器 centos7 和弹性公网IP EIP 虽然是从事计算机行业的人员但俺不是计算机网络从业人员 如何将这个祖宗运行起来 并且还要能方便远程维护 唉 其间的过程及酸爽各位看官尽情脑补吧 在此特别写几篇记录一下 算
  • 数据结构 每日一练 :选择 + 编程

    目录 选择 编程 选择 A a 0 2 1 B a 1 3 C a 4 2 0 D a 0 2 2 答案 D 解析 题目给的是一个3行4列的数组 而D选项是 a 0 2 2 a 0 4 相当于取得是第1行第5列的元素 越界了 需要注意的是数
  • 剑指Offer(牛客网)-替换空格

    题目来源 https www nowcoder com practice 4060ac7e3e404ad1a894ef3e17650423 tpId 13 tqId 11155 tPage 1 rp 1 ru 2Fta 2Fcoding i
  • 网络代理技术:保障隐私与增强安全

    在当今数字化的世界中 网络代理技术的重要性日益凸显 无论您是普通用户还是网络工程师 了解如何使用代理技术来保护隐私和增强网络安全都是至关重要的 本文将深入探讨Socks5代理 IP代理以及它们在网络安全和隐私保护中的关键作用 1 Socks
  • 精益求精:如何在 React 项目中巧妙运用 Redux 并优化项目结构

    在前端开发中 React 和 Redux 已经成为构建可扩展 高效的应用程序的首选工具 本文将向您介绍如何在 React 项目中使用 Redux 并精心划分项目结构 以确保代码的可维护性和可扩展性 第一步 安装 Redux 首先 确保您的项
  • Linux下boost库的编译、安装详解

    下载boost源码 boost下载地址 解压到一个目录 tar zxvf boost 1 66 0 tar gz 执行bootstrap sh脚本 进入boost 1 66 0目录中 cd boost 1 66 0 bootstrap sh
  • Multi-Task Learning as Multi-Objective Optimization 阅读笔记

    Multi Task Learning as Multi Objective Optimization 阅读笔记 Multi Task Learning MTL Multi Objective Optimization MOO Multip
  • Android-Studio中AndroidManifest-xml文件中application标签

    AndroidManifest xml 是每个android程序中必须的文件 它位于整个项目的根目录 描述了package中暴露的组件 activities services 等等 他们各自的实现类 各种能被处理的数据和启动位置 Andro
  • 小米盒子刷鸿蒙系统,继续提升配置:小米 发布小米盒子3 增强版

    距小米盒子3发布时隔小半年之后 小米再度更新产品线 近日于官网发布小米盒子3增强版 除去外观的变化之外 新品在配置方面相较于前作也有显著的提升 首次采用了Cortex A72处理器 小米盒子3增强版售价399元 定于3月18日小米官网发售
  • ECCV2018论文,以及相关比赛地址

    原 ECCV 2018论文解读及资源集锦 10月17日更新 含全部论文下载链接 2018年08月20日 17 41 38 extremevision 阅读数 8983 div class operating div
  • 三维模型轻量化示例

    声明 本文是学习GB T 42869 2023 机械产品三维模型简化与轻量化要求 而整理的学习笔记 分享出来希望更多人受益 如果存在侵权请及时联系我们 1 范围 本文件规定了机械产品三维模型的简化要求和轻量化要求 本文件适用于机械产品三维模
  • 2019多益网络秋招视频面试算法题:将一个长度为n的数组A的元素循环右移k位

    题目 将一个长度为n的数组A的元素循环右移k位 比如数组 1 2 3 4 5 循环右移3位之后变成 3 4 5 1 2 方法一 首先考虑k 如果k能被数组长度len整除 那么数组顺序不变 可以直接输出数组 如果不能整除 得到k k len
  • PostgreSQL 时间函数 extract函数和epoch 新纪元时间的使用

    Extract 属于 SQL 的 DML 即数据库管理语言 函数 同样 InterBase 也支持 Extract 它主要用于从一个日期或时间型的字段内抽取年 月 日 时 分 秒数据 因此 它支持其关健字 YEAR MONTH DAY HO