📜  PostgreSQL 中的 IsFinite()、justify_days() 和 justify_hours()函数

📅  最后修改于: 2022-05-13 01:54:20.973000             🧑  作者: Mango

PostgreSQL 中的 IsFinite()、justify_days() 和 justify_hours()函数

先决条件: PostgreSQL – 简介

1. PostgreSQL 中的 IsFinite()函数:
PostgreSQL 中的此函数有助于测试有限的日期、时间戳和间隔。由于我们知道 Postgre 支持具有无穷大或负无穷大值的时间戳,因此这里 IsFinite()函数起着重要作用。该函数将测试给定的数据或时间戳,并相应地返回 true 或 false。

句法 -

isfinite(date)
isfinite(timestamp)
isfinite(interval)

参数 -
该函数只接受一个参数,可以是以下任一参数 -

  • 日期
  • 时间戳
  • 间隔

返回 -
如果给定的日期/时间戳/间隔是有限的,则该函数将返回“True”或“t”,否则返回“False”或“f”。

示例 1 –
使用日期“2021-09-13”检查 IsFinite()函数的工作

SELECT isfinite(date '2021-09-13');

输出——
由于日期“2021-09-13”不是无限的,所以函数将返回True。

示例 2 –
使用时间戳“2021-09-13 12:15:05”检查 IsFinite()函数的工作

SELECT isfinite(timestamp '2021-09-13 12:15:05');

输出——
由于时间戳“2021-09-13 12:15:05”不是无限的,所以函数会返回True。

示例 3 –
使用间隔“5 小时 15 分钟”检查 IsFinite()函数的工作

SELECT isfinite(interval '5 hours 15 minutes');

输出——
由于间隔“5 小时 15 分钟”不是无限的,因此该函数将返回 True。

示例 4 –
使用“Infinity”常量检查 IsFinite()函数的工作

SELECT isfinite('infinity'::timestamp);

输出 –错误
由于无限常量作为参数传递,因此该函数将返回 False。

示例 5 –
使用“-Infinity”(负无穷大)常量检查 IsFinite()函数的工作

SELECT isfinite('-infinity'::timestamp);

输出 –错误
由于 -infinite 常量作为参数传递,因此该函数将返回 False。

2. PostgreSQL 中的 justify_days()函数:
PostgreSQL 中的此函数有助于调整间隔值,即该函数可以将 30 天的时间段表示为月。就像如果用户将 30 天作为参数传递,该函数将返回 1 mon,依此类推。

句法 -

justify_days(interval)

参数 -
该函数只接受一个参数

  • 间隔 -
    可以用表示的某个区间
  • 退货——
    该函数将转换并以月为单位返回给定的间隔。

示例 1 –
使用间隔“90 天”检查 justify_days () 函数的工作

SELECT justify_days(interval '90 days');

输出 – 3 mon
由于 30 天等于 1 个月,因此 90 天将表示为 3 个月。

示例 2 –
当间隔不是 30 的函数倍数时,检查 justify_days() 函数的工作 
以35天为间隔。

SELECT justify_days(interval '35 days');

输出 – 1 月 5 天
由于间隔不是 30 的完美倍数,因此结果将以月和日的形式显示。

示例 3 –
检查justify_days ()函数在间隔小于 30 天时的工作情况

SELECT justify_days(interval '14 days');

产出 – 14 天
由于给定的间隔是 14 天,小于 30,所以输出将保持 14 天。

示例 4 –
检查justify_days ()函数在时间也随着时间间隔过去的情况下的工作情况
1.以50天40分钟为间隔。

SELECT justify_days(interval '50 days 40 minutes');

输出 – 1 月 20 天 00:40:00

2. 间隔为160天2小时40分59秒。

SELECT justify_days(interval '160 days 2 hours 40 minutes 59 seconds');

输出 – 5 星期一 10 天 02:40:59
由于时间也以间隔传递,因此输出以 HH:MM:SS 格式显示月、日和时间。

3. justify_hours()函数:
PostgreSQL 中的此函数有助于调整间隔值,即该函数可以将 24 小时时间段表示为天。就像如果用户将 24 小时作为参数传递,该函数将返回 1 天,依此类推。

句法 -

justify_hours(interval)

参数 -
该函数只接受一个参数,

  • 间隔 -
    可以用表示的某个时间间隔
  • 退货——
    该函数将转换并以天为单位返回给定的间隔。

示例 1 –
使用间隔“72 小时”检查 justify_hours() 函数的工作

SELECT justify_hours(interval '72 hours');

输出 – 3 天
由于 24 小时等于 1 天,因此 72 小时将表示为 3 天。

示例 2 –
检查justify_hours ()函数在间隔小于 24 小时时的工作情况

SELECT justify_hours(interval '14 hours');

输出 – 14:00:00
由于给定的时间间隔是 14 小时,小于 24,因此输出将采用 HH:MM:SS 格式。

示例 3 –
检查justify_hours ()函数在间隔为秒、分和月形式时的工作情况。
1.以5.53个月为间隔。

SELECT justify_hours(interval '5.53 months');

输出 – 5 星期一 15 天 21:36:00

2. 以300 小时 58 分钟为间隔。

SELECT justify_hours(interval '300 hours 58 minutes');

输出 – 12 天 12:58:00

3. 以3000 小时 10 分 20 秒为间隔。

SELECT justify_hours(interval '3000 hours 10 minutes 20 seconds');

输出 – 125 天 00:10:20
输出将以 HH:MM:SS 格式以月、日和时间显示。