sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan justify_interval() virker i PostgreSQL

I PostgreSQL er justify_interval() funktionen justerer et interval ved hjælp af justify_days og justify_hours . Det giver dig mulighed for at bruge yderligere tegnjusteringer til at justere intervallet.

Syntaks

Funktionen har følgende syntaks:

justify_interval(interval)

Hvor interval er det interval, du ønsker justeret.

Eksempel

Her er et grundlæggende eksempel at demonstrere.

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

Resultat:

29 days 21:00:00

Sammenligning med justify_hours() og justify_days()

Her er hvordan det sammenlignes med justify_hours() og justify_days() når du bruger det samme argument.

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

Resultat (ved hjælp af lodret output):

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

I dette eksempel brugte jeg \x for at skifte over til udvidet visning, som viser resultaterne ved hjælp af lodret output.

Nedenfor er nogle flere sammenligninger med forskellige argumenter.

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');

Resultat (ved hjælp af lodret output):

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');

Resultat (ved hjælp af lodret output):

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');

Resultat (ved hjælp af lodret output):

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. PL/SQL, hvordan undslipper man et enkelt citat i en streng?

  2. Arbejder med cPanel MySQL-databaser

  3. Er der ulemper ved at bruge en generisk varchar(255) til alle tekstbaserede felter?

  4. Hvilken kolonne skal det klyngede indeks sættes på?