sql >> Database >  >> RDS >> PostgreSQL

Hoe rechtvaardigt_interval() werkt in PostgreSQL

In PostgreSQL, de justify_interval() functie past een interval aan met behulp van justify_days en justify_hours . Hiermee kunt u aanvullende tekenaanpassingen gebruiken om het interval aan te passen.

Syntaxis

De functie heeft de volgende syntaxis:

justify_interval(interval)

Waar interval is het interval dat u wilt aanpassen.

Voorbeeld

Hier is een eenvoudig voorbeeld om te demonstreren.

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

Resultaat:

29 days 21:00:00

Vergelijking met rechtvaardigen_uren() en rechtvaardigen_dagen()

Hier is hoe het zich verhoudt tot justify_hours() en justify_days() bij gebruik van hetzelfde argument.

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

Resultaat (met verticale uitvoer):

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

In dit voorbeeld gebruikte ik \x om over te schakelen naar de uitgebreide weergave, die de resultaten weergeeft met verticale uitvoer.

Hieronder staan ​​nog wat vergelijkingen met verschillende argumenten.

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

Resultaat (met verticale uitvoer):

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

Resultaat (met verticale uitvoer):

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

Resultaat (met verticale uitvoer):

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. SQL WHERE.. IN-clausule meerdere kolommen

  2. Spring Boot CRUD-voorbeeld met MySQL

  3. Meest efficiënte manier om het aantal rijen in de tabel te krijgen

  4. hoe vind je indexen op een tabel in orakel