PostgreSQL Intervall

PostgreSQL Intervall
PostgreSQL er et populært relasjonsdatabaseadministrasjonssystem. Det er en åpen kildekode-programvare som er populær for sin stabilitet og støtte for forskjellige åpne tekniske standarder. Det opprettholdes aktivt av utviklere fra hele verden.

I denne guiden vil vi jobbe med intervall i PostgreSql.

Forutsetninger:

For å utføre trinnene som er demonstrert i denne guiden, trenger du følgende komponenter:

  • Et riktig konfigurert Linux-system. Lær mer om å installere Ubuntu i VirtualBox.
  • En riktig installasjon av PostgreSQL. Lær mer om å installere PostgreSQL på Ubuntu.

Intervall i PostgreSql

Å lagre og administrere tidsperiodene (minutter, sekunder, år osv.), PostgreSQL tilbyr intervalldatatypen.

  • Størrelsen på intervallet er 16 byte.
  • Det kan lagre verdier fra -178000000 år til 178000000 år.
  • Ulike intervallstiler er tilgjengelige, for eksempel Postgres (standard), Postgres_verbose, SQL_Standard, ISO_8601, etc.
  • Aritmetiske operasjoner er mulig.

Intervalltypen er som følger:

$ @ intervall

Her:

  • En intervallverdi er tillatt å ha en presisjonsverdi P der verdien av P kan variere fra 0 til 6.
  • “@” -Tegnet er valgfritt, kan derfor utelates trygt.

Intervallformater

Postgres_verbose
$

Hvor:

  • Mengde: et tall som kan godta “+” eller “-“.
  • Enhet: Ulike tidsenheter støttes. For eksempel: tiår, århundre, måned, dag, uke, time, andre og forkortelser (d, m, y, etc.). Flertallsformer støttes også (dager, måneder osv.).

Dette er Postgres_verbose -formatet som er vanlig for intervallutgangsformater.

ISO 8601

Strukturen til ISO 8601 -format med designatorer er som følger:

$ PT

Her:

  • Verdien starter med “P”.
  • Verdien etter "t" betegner tiden på dagen.

Følgende enhetsforkortelser er tilgjengelige i ISO 8601:

  • Y: år
  • M: Måneder (innen datedatoen)
  • W: uker
  • D: dager
  • H: timer
  • M: Minutter (innen tidsseksjonen)
  • S: sekunder

Her er et intervalleksempel i ISO 8601 -format (med designatorer):

$ P5Y4M3DT2H1M2S

Det er et alternativt format av ISO 8601. Strukturen er som følger:

$ PT

Her er det samme intervalleksemplet i ISO 8601 Alternativ format:

$ P0005-04-03T02: 01: 02

Bruke intervallverdiene

I denne delen vil vi demonstrere de forskjellige måtene å bruke intervallverdiene i PostgreSQL -spørsmål.

Grunnleggende bruk
Fra PostgreSql -skallet, kjør følgende spørsmål:

PLUKKE UT

Nå (), nå () - intervall '1 år 3 timer 20 minutter'
Som "3 timer for 20 minutter siden av fjoråret";

Her:

  • Nå () -funksjonen returnerer gjeldende dato og tid.
  • Vi trekker fra "1 år 3 timer 20 minutter" fra nå () for å få ønsket verdi.
  • Ved hjelp av AS -setningen spesifiserer vi et navn for den andre kolonnen i utgangen.

Intervallutgangsformater

I PostgreSQL kan vi spesifisere utgangsformatet til en intervallverdi ved å bruke følgende kommando:

$ Set intervalStyle = '';

Det er et par tilgjengelige formater:

  • SQL_Standard
  • Postgres
  • Postgres_verbose
  • ISO_8601

La oss sette denne kommandoen i verk. Følgende spørsmål viser intervallutgangen i forskjellige formater:

Sett intervalStyle = 'sql_standard';
Velg intervall '5 år 4 måneder 3 dager 2 timer 1 minutter 2 sekund';
Sett intervalStyle = 'Postgres';
Velg intervall '5 år 4 måneder 3 dager 2 timer 1 minutter 2 sekund';
Sett intervalStyle = 'postgres_verbose';
Velg intervall '5 år 4 måneder 3 dager 2 timer 1 minutter 2 sekund';
Sett intervalStyle = 'ISO_8601';
Velg intervall '5 år 4 måneder 3 dager 2 timer 1 minutter 2 sekund';

Intervall aritmetiske operatører

Det er mulig å anvende de aritmetiske operasjonene (+, -, *) på intervallverdiene. Følgende spørsmål viser denne funksjonen:

PLUKKE UT

Intervall '3h 50m' + intervall '10m';

PLUKKE UT

Intervall '9h 50m' - intervall '50m';

PLUKKE UT

3600 * intervall '1 minutt';

Konvertere intervall til streng

Ved hjelp av To_Char () -funksjonen kan vi konvertere verdien av intervall til en streng. Strukturen til to_char () er som følger:

$ To_char (, );

Her:

  • Det første argumentet er intervallverdien som skal transformeres. Det kan være i et hvilket som helst intervallformat.
  • Det andre argumentet beskriver formatet på utgangen.

Følgende spørring viser et enkelt eksempel på å konvertere et intervall i ISO 8601 -format til en enkel streng:

PLUKKE UT
To_char (
Intervall 'P0005-04-03T02: 01: 02',
'HH24: MI: SS'
);

Datautvinning fra intervall

Ved hjelp av Extract () -funksjonen kan vi trekke ut innholdet i et spesifikt felt fra en intervallverdi. Kommandostrukturen til ekstrakt () i tandem med intervall er som følger:

$ Ekstrakt ( FRA );

Her:

  • felt: Feltet som skal trekkes ut fra intervall. For eksempel: sekunder, minutter, timer, dato, måned, år osv.
  • intervall: Intervallverdien.

La oss sette Extract () -funksjonen ut i handling. I det følgende eksemplet trekker vi ut øyeblikksfeltet fra en intervallverdi:

PLUKKE UT

EKSTRAKT (
MINUTT
FRA
Intervall 'P0005-04-03T02: 01: 02'

Justering av intervallverdi

Justify_days () og Justify_hours () -funksjonene kan konvertere intervallene fra henholdsvis 30 dager til 1 måned og 24 timer til 1 dag.

Følgende spørring viser bruken av disse funksjonene:

PLUKKE UT

Justify_days (Interal '90 Days '),
Justify_hours (intervall '72 timer ');

Konklusjon

Vi gikk over intervallfunksjonen i PostgreSQL. Denne guiden utdyper forskjellige støttede intervallformater. Det viser også de forskjellige måtene å implementere intervallet i spørsmål. Til slutt undersøkte vi også de forskjellige PostgreSQL -funksjonene som transformerer/transformerer intervallverdien i de spesifiserte formatene.

Trenger å samhandle med PostgreSQL over et nettverk? Det er forskjellige tilgjengelige PostgreSQL GUI -er som kan koble seg til en ekstern server og administrere den uten problemer. Foruten de innebygde funksjonene, støtter PostgreSQL også de brukerdefinerte funksjonene.