首页 > 数据库 >PostgreSql中的timestampdiff

PostgreSql中的timestampdiff

时间:2023-08-24 10:55:52浏览次数:53  
标签:end TIMESTAMP return timestampdiff EPOCH PostgreSql extract trunc

    近期项目从Mysql数据库,迁移的到PostgreSql数据库,其中代码中很多timestampdiff 在PostgreSql缺少对应的函数。所以自己整理了一份

create or REPLACE FUNCTION timestampdiff(HOUR text,create_time TIMESTAMP,end_time TIMESTAMP)
    RETURNS BIGINT
as
$$
BEGIN
    if upper($1)='SECOND' then
        return  trunc(extract(EPOCH FROM ($3 - $2::TIMESTAMP)) )::bigint;
    end if;
    if UPPER($1)='HOUR' then
        return  trunc(extract(EPOCH FROM ($3 - $2::TIMESTAMP)/3600) )::bigint;
    end if;
    if upper($1)='DAY' then
        return  trunc(extract(EPOCH FROM ($3 - $2::TIMESTAMP)/3600/24) )::bigint;
    end if;
    if upper($1)='MONTH' then
        return  trunc(extract(EPOCH FROM ($3 - $2::TIMESTAMP)/3600/24/30) )::bigint;
    end if;
    if upper($1)='YEAR' then
        return  trunc(extract(EPOCH FROM ($3 - $2::TIMESTAMP)/3600/24/365) )::bigint;
    end if;
end;
$$
    LANGUAGE plpgsql

  

标签:end,TIMESTAMP,return,timestampdiff,EPOCH,PostgreSql,extract,trunc
From: https://www.cnblogs.com/panyueting/p/17653619.html

相关文章

  • 【SDE】Centos7 离线安装 Postgresql 12 并配置 sde
    使用ArcGIS10.9.1对应的Postgresql12.7rpm包postgresql12-12.7-1PGDG.rhel7.x86_64.rpmpostgresql12-contrib-12.7-1PGDG.rhel7.x86_64.rpmpostgresql12-libs-12.7-1PGDG.rhel7.x86_64.rpmpostgresql12-server-12.7-1PGDG.rhel7.x86_64.rpmlibicu-50.2-4.el7_7.x......
  • GIS开发与应用(PostgreSQL空间数据库各种查询语句范例以及SQL语句查询空间关系)_postgre
    实验二PG空间数据库应用实验目的:实验准备实验内容及要求实验过程及步骤:1、创建空间数据库nyc,在nyc空间数据库中创建geometries表,对表中插入Point、Linestring、Polygon、PolygonWithHole、collection等几何要素。2、查看geometries表中的几何图形的元数据。使用`ST_G......
  • Postgresql检查点
    一、 检查点触发机制在PostgreSQL中,检查点(后台)进程执行检查点;当发生下列情况之一时,其进程将启动:1、检查点间隔时间由checkpoint_timeout设置(默认间隔为300秒(5分钟))2、在9.5版或更高版本中,pg_xlog中WAL段文件的总大小(在10版或更高版本中为pg_WAL)已超过参数max_WAL......
  • Postgresql涉及复杂视图查询的优化案例
    一、前言对于含有union,groupby等的视图,我们称之为复杂视图。这类的视图会影响优化器对于视图的提升,也就是视图无法与父查询进行合并,从而影响访问路径、连接方法、连接顺序等。本文通过例子,给大家展示PostgreSQL这类问题及针对该问题的优化方法。二、Union视图的优化1、......
  • postgresql 查询重复,多行合并
    --postgresql--替换字符串UPDATEtmpSETphone=REPLACE(phone,'myzs','');--查询替换中间4位为*SELECTCONCAT_WS('****',SUBSTR(phone,1,3),SUBSTR(phone,8))asnew_phone_numberFROMtmp;--更新手机号为中间四位为*UPDATEtmpsetnewphone=C......
  • postgresql使用dblink查异库数据
    背景环境postgresql-14,centos7.9当想夸库查询另一个数据库的数据时,pg就做的没oracle好了,也没mysql方便,但有数据库已经存了这么多年了,迁库什么都是不可能的,所以有总比没好配置安装dblink插件createextensiondblink;如果能装,就跳第三步往下看2.如果报没相关文件,安装依......
  • PostgreSQL-常用命令汇总
     1. 连接到PostgreSQL数据库:psql-h主机名-p 端口号-U用户名-d数据库名 2. 列出所有数据库:\l 3. 切换到指定数据库:\c 数据库名 4. 查看当前数据库中的所有表:\dt 5. 查看表的结构:\d 表名 6. 执行SQL查询:SELECT *FROM 表名; 7. 创......
  • PostgreSQL-查询每个表的大小
    1、查询数据库中单个表的大小(不包含索引)selectpg_size_pretty(pg_relation_size('表名')); 2、查询所有表的大小并排序(包含索引)SELECTtable_schema||'.'||table_nameAStable_full_name,pg_size_pretty(pg_total_relation_size('"'||table_schema||&#......
  • PostgreSQL 源码性能诊断(perf profiling)指南(含火焰图生成分析FlameGraph) - 珍藏级
    PostgreSQL源码性能诊断(perfprofiling)指南(含火焰图生成分析FlameGraph)-珍藏级作者digoal日期2016-11-28标签PostgreSQL,Linux,perf,性能诊断,stap,systemtap,strace,dtrace,dwarf,profiler,perf_events,probe,dynamicprobe,tracepoint......
  • PostgreSQL与Java类型的对照
    PostgreSQL™                JavaSE8date                    LocalDatetime                   LocalTimetimestamp withouttimezone      LocalDateTimetimestampwithtimezon......