【实例】POSTGRE SQL如何用age函数实现两个日期之间的差值计算用法及代码示例

这篇具有很好参考价值的文章主要介绍了【实例】POSTGRE SQL如何用age函数实现两个日期之间的差值计算用法及代码示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【实例】POSTGRE SQL如何用age函数实现两个日期之间的差值计算用法及代码示例

工作中遇到需要计算两个日期之间的月份差值、天数差值,百度到的众多内容自己通过实践整理后,将最终的计算结果分享给大家

例:
用到的函数:age(end_date,start_date)
age函数常用来计算年龄,计算两个日期之间的差值
这里current_date是当前系统时间,为:

select current_date

系统返回账期为:

2023-10-20

既当前日期为:2023-10-20

第二个参数账期后::timestamp是将该值强制转换为timestamp类型,才可用做计算:

select age(current_date , '2022-11-04'::timestamp)

返回结果为:

{"hours":0,"seconds":0.0,"months":11,"minutes":0,"days":16,"type":"interval","value":"0 years 11 mons 16 days 0 hours 0 mins 0.00 secs","years":0}

这里会将年份之间的差值、月份之间、天数之间对应差值都对应计算出来

当我们将其转换为varchar格式后:

select cast(age(current_date , '2022-11-04'::timestamp) as varchar)

返回结果会变为:
会直接返回有参数的值,既账期差值:

11 mons 16 days

看到这里你是否已经明白该如何计算两个账期之间的差值了呢?如果只想要相差的年份、月份、天数中的一种的话,可以加入extract函数,单独提取出年份差值,月份差值,或者天数差值来

例:


select 
 extract(year from  age(current_date , '2022-03-04'::timestamp)) as interval_years  -- 间隔的年数
,extract(month from  age(current_date , '2022-03-04'::timestamp)) as interval_month  -- 间隔的月数
,extract(day from  age(current_date , '2022-03-04'::timestamp)) as interval_day -- 间隔的天数

返回结果为:

interval_years	1.0
interval_month	7.0
interval_day	16.0

大家可以自己计算一下,
2023-10-20 到 2022-03-04 的差值 是不是就是差了1年7个月16天?

想全部转换为天数或者月数的话,自己再计算一下就好了,这里一个月按30天,一年按365天计算了:

select 
 interval_years*365+interval_month*30+interval_day as interval_all_days  -- 间隔的总天数计算
,interval_years*12+interval_month as interval_all_months  -- 间隔的总天数计算
from 
(
select 
 extract(year from  age(current_date , '2022-03-04'::timestamp)) as interval_years  -- 间隔的年数
,extract(month from  age(current_date , '2022-03-04'::timestamp)) as interval_month  -- 间隔的月数
,extract(day from  age(current_date , '2022-03-04'::timestamp)) as interval_day -- 间隔的天数
)a 

返回结果为:

interval_all_days	591.0
interval_all_months	19.0

这两个日期按天数计算共差了591天,按月份来看差了19个月,你学会了吗?文章来源地址https://www.toymoban.com/news/detail-763315.html

到了这里,关于【实例】POSTGRE SQL如何用age函数实现两个日期之间的差值计算用法及代码示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 选读SQL经典实例笔记05_日期运算(下)

    3.6.2.1. 对于MySQL 版本的DATEDIFF函数,需要省略第一个参数day,并把剩下的两个参数的顺序颠倒过来 4.3.2.1. Oracle早期版本

    2024年02月13日
    浏览(83)
  • 选读SQL经典实例笔记04_日期运算(上)

    2.1.1.1. 因为X和Y之间没有任何连接条件,这里会产生笛卡儿积 2.1.1.2. X和Y都只有一条数据,因而即使没有连接条件也不会有问题,结果集最终只会有一行 2.8.1.1. 对于MySQL 而言,只需去掉DATEDIFF函数的第一个参数,并翻转ALLEN_HD和WARD_HD的顺序即可 3.1.2.1. sql 3.1.2.2. sql 3.1.2.2.

    2024年02月13日
    浏览(75)
  • Hive时间日期函数一文详解+代码实例

    目录 前言 一、HiveSQL运行过程 二、Hive时间函数 1.获取当前时间 1.current_date() 2. current_timestamp() 3. unix_timestamp() 2.获取指定时间维度 1. year() 2.quarter() 3.month() 4.day() 5.hour() 6.minute() 7.second 8.weekofyear() 9. dayofweek()  10.last_day()  11.next_day() 12.trunc()  3.时间格式转换  1.to_date() 2. from_un

    2024年02月02日
    浏览(45)
  • 通过DBeaver 给Postgre SQL表 设置主键自增

    1.创建表 CREATE TABLE public.company ( id int4 NOT NULL , name text NOT NULL, age int4 NOT NULL, address bpchar(50) NULL, salary float4 NULL, join_date date NULL, CONSTRAINT company_pkey PRIMARY KEY (id) ); 2.插入数据(不传入id) INSERT INTO public.company (name, age, address, salary, join_date) VALUES(\\\'Kobe\\\', 20, \\\'Lake\\\', 10000, \\\'1996-07-13\\\');  

    2024年02月12日
    浏览(70)
  • [office] Excel中函数进行计算两个日期参数差值的方法 #职场发展#学习方法#媒体

    Excel中函数进行计算两个日期参数差值的方法 在excel使用中,如果想计算两个日期参数的差值,该用什么函数和如何使用呢?今天,小编就教大家在Excel中函数进行计算两个日期参数差值的方法。 Excel中函数进行计算两个日期参数差值的步骤 在excel中计算两个日期参数的差值,

    2024年02月20日
    浏览(48)
  • Doris--基础--13.2--SQl函数--日期函数

    转换datetime值dt,从 from_tz 转到 to_tz 时区,并返回的结果值。 如果参数无效该函数返回NULL。 获取当前的日期,以DATE类型返回 获得当前的时间,以Datetime类型返回 获得当前的时间,以TIME类型返回 向日期添加指定的时间间隔。 date 参数是合法的日期表达式。 expr 参数是您希望

    2024年02月06日
    浏览(52)
  • SQL SERVER 日期函数相关内容

    最近跟日期相关的内容杠上了,为方便自己后期查阅,特地做笔记。 DECLARE @chanenddate datetime----截止日期转成当天的年月日+尾巴 DECLARE @chanbengindate datetime----开始日期转成当天的年月日+0000000   截取日期的 年月日,字符串类型 convert(varchar, cast(@begindate as date), 23) 截取日期的 时

    2024年02月11日
    浏览(41)
  • SQL中日期与时间类型及函数

    数据类型 含义 对应范围 DATETIME 日期和时间 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 DATE 日期 1000-01-01~ 9999-12-31 YEAR 年 1901~2155(4位时) 1970~2069(70~69)(2位时) TIME 时间 -838:59:59~838:59:59 注意:日期和时间类型的数据需要用“ ”或 ‘ ’括起来; 在MYSQL中日期必须用YYYY-MM-DD格式输入,

    2024年02月02日
    浏览(47)
  • 1/50 hive sql 日期处理函数

    目录 一、获取当前时间 二、获取指定时间 三、转换时间格式 【1】to_date(string timestamp) 【2】date_format(date string timestamp,string format) 【3】from_unixtime(bigint unixtime,string format) 【4】unix_timestamp(date string timestamp,string pattern)  【5】其余格式的指定转换 regexp_replace()、from_unixtime(unix_ti

    2023年04月25日
    浏览(46)
  • 大数据Doris(五十三):SQL函数之日期函数(一)

    文章目录 SQL函数之日期函数 一、​​​​​​​CONVERT_TZ(DATETIME dt, VARCHAR from_tz, VARCHAR to_tz)

    2024年01月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包