sql >> Databáze >  >> RDS >> PostgreSQL

Jak funguje justify_interval() v PostgreSQL

V PostgreSQL, justify_interval() funkce upraví interval pomocí justify_daysjustify_hours . Umožňuje vám použít další úpravy znamének k úpravě intervalu.

Syntaxe

Funkce má následující syntaxi:

justify_interval(interval)

Kde interval je interval, který chcete upravit.

Příklad

Zde je základní příklad k demonstraci.

SELECT justify_interval(interval '1 mon -3 hours');

Výsledek:

29 days 21:00:00

Porovnání s justify_hours() a justify_days()

Zde je srovnání s justify_hours() a justify_days() při použití stejného argumentu.

\x
SELECT 
  justify_interval(interval '1 mon -3 hours'),
  justify_hours(interval '1 mon -3 hours'),
  justify_days(interval '1 mon -3 hours');

Výsledek (při použití vertikálního výstupu):

justify_interval | 29 days 21:00:00
justify_hours    | 1 mon -03:00:00
justify_days     | 1 mon -03:00:00

V tomto příkladu jsem použil \x pro přepnutí na rozšířené zobrazení, které zobrazuje výsledky pomocí vertikálního výstupu.

Níže jsou uvedena některá další srovnání pomocí různých argumentů.

justify_interval()

SELECT 
  justify_interval(interval '30 hours'),
  justify_interval(interval '300 hours'),
  justify_interval(interval '3000 hours'),
  justify_interval(interval '3.53 months'),
  justify_interval(interval '18 days'),
  justify_interval(interval '31 days'),
  justify_interval(interval '45 days'),
  justify_interval(interval '290 days');

Výsledek (při použití vertikálního výstupu):

justify_interval | 1 day 06:00:00
justify_interval | 12 days 12:00:00
justify_interval | 4 mons 5 days
justify_interval | 3 mons 15 days 21:36:00
justify_interval | 18 days
justify_interval | 1 mon 1 day
justify_interval | 1 mon 15 days
justify_interval | 9 mons 20 days

justify_hours()

SELECT 
  justify_hours(interval '30 hours'),
  justify_hours(interval '300 hours'),
  justify_hours(interval '3000 hours'),
  justify_hours(interval '3.53 months'),
  justify_hours(interval '18 days'),
  justify_hours(interval '31 days'),
  justify_hours(interval '45 days'),
  justify_hours(interval '290 days');

Výsledek (při použití vertikálního výstupu):

justify_hours | 1 day 06:00:00
justify_hours | 12 days 12:00:00
justify_hours | 125 days
justify_hours | 3 mons 15 days 21:36:00
justify_hours | 18 days
justify_hours | 31 days
justify_hours | 45 days
justify_hours | 290 days

justify_days()

SELECT 
  justify_days(interval '30 hours'),
  justify_days(interval '300 hours'),
  justify_days(interval '3000 hours'),
  justify_days(interval '3.53 months'),
  justify_days(interval '18 days'),
  justify_days(interval '31 days'),
  justify_days(interval '45 days'),
  justify_days(interval '290 days');

Výsledek (při použití vertikálního výstupu):

justify_days | 30:00:00
justify_days | 300:00:00
justify_days | 3000:00:00
justify_days | 3 mons 15 days 21:36:00
justify_days | 18 days
justify_days | 1 mon 1 day
justify_days | 1 mon 15 days
justify_days | 9 mons 20 days


  1. Postgres:příkaz vakua nevyčistí mrtvé n-tice

  2. Převzít hodnotu z FieldA, odeslat do funkce db, vrátit hodnotu do FieldB

  3. Jak otestovat uloženou proceduru Oracle s návratovým typem RefCursor?

  4. SSMS nyní přichází s Azure Data Studio