Datediff PostgreSql

Datediff PostgreSql
Datediff -funksjon er det største anlegget levert av PostgreSQL til den nye brukeren. Det brukes til å gi forskjellen mellom to medfølgende datoer av brukeren. Denne funksjonen har spilt en viktig rolle i databasestyringssystemer, spesielt i PostgreSQL, ettersom den fungerer som en kalender. Vi er kjent med å legge inn en post i et hvilket som helst databasestyringssystem, så vi bør også vite forholdet mellom data som er lagt inn med datoen. For når vi skal legge til data i systemet vårt, lagres datoen og klokkeslettet, og at Lagre informasjon er nyttig i fremtidige vilkår. Tilsvarende inneholder de lagrede dataene i systemet også datoinformasjonen til enheten, hvis attributter er lagret av datoer, i.e., fødselsdato, siste dag på skolen osv. Denne informasjonen til enhver ansatt eller student hjelper organisasjonen med å håndtere posten til den tiden studenten/ ansatte har gått i den aktuelle organisasjonen.

Ved å bruke datediff, kan vi være klar over neste dato, tidligere datoer og lignende er tilfelle med dager og uker. Denne artikkelen er basert på noen grunnleggende bruk av denne funksjonen og fører den til forskjellene på uker og måneder. Du må installere PostgreSQL med databasen i arbeidsstaten. Vi kan bruke disse kommandoene på både Pgadmin og PSQL også. Her har vi valgt PSQL for gjennomføring av denne funksjonen.

La oss starte med syntaksen til den daterte funksjonen vi vil bruke senere i artikkelen.

# Velg Datediff Function () Dato1, Interval Date2;

Intervall er forskjellen mellom de to datoene vi gir i kommandoen.

Funksjon nå ()

Beveger seg nå mot den første og fremste delen av datediff -funksjonen. Det er en nå () -funksjon. Alt du trenger er å skrive det, og det vil gjøre resten når du henter datoen og gjeldende tid for å skrive kommandoen.

>> velg nå ();

Denne kommandoen gir dato og klokkeslett med sekunder og detaljene i tidsstempler med tidssonen.

Funksjon “Gjeldende tid på dagen”

Gjeldende tid, dato og dag er kjent ved å bruke denne funksjonen her.

>> velg TimeOfDay ();

Kvartfunksjonen ()

Et år inneholder 3 kvarter i den. Fra gjeldende kommando blir vi kjent med kvartalet av gjeldende dato. Som i dag er 30. august, betyr det at den nåværende datoen vil ligge i 3. kvartal.

>> velg Extract (kvartal fra nå ());

Den nye delen vil avgjøre datoen, og deretter vil hvilefunksjonen beregne kvartdelen.

Dagene gikk til nå

Denne funksjonen trekker ut antall dager som har gått til nå i henhold til gjeldende dato. 'Doy' vil beregne den nåværende dagen fra nå () -funksjonen og vise den som en utgang.

>> velg Extract (doy fra nå ());

Nåværende dag i uken

Vi kan også beregne inneværende dagnummer i uken. Funksjonen fungerer for å trekke ut dataene fra systemet, som gjøres nå () -funksjonen, for å kjenne den nåværende ukens dag. For eksempel, hvis det er mandag, vil dagnummeret være 1, 2 for tirsdag, og så videre. Dagsnummeret på søndag er satt som '0' som standard av systemet.

>> velg Extract (Dow fra nå ());

Nå har vi også et alternativ for beregninger av disse dagene/månedene. For eksempel kan vi erstatte 'Extract' med 'date_part'. Kommandoen fungerer det samme, og resultatet kan sammenlignes med eksemplene ovenfor. Vi kan implementere alle tidligere eksempler med dette nøkkelordet også.

>> velg date_part ('doy', nå ());

Så dette var noen grunnleggende eksempler. Nå vil vi bevege oss mot de daterte funksjonene og vil se at det fungerer.

år Forskjell

Forskjellen mellom to spesifikke år kan beregnes ved å bruke nøkkelordet "Date_part". Men syntaksen er ganske forskjellig fra andre eksempler. Date_part brukes fordi det oppstår en feil hvis vi direkte bruker "datediff" i kommandoen. Du må oppgi nøkkelordet 'år' i kommandoen, etter gjeldende dato eller det du vil gjøre en forskjell. Deretter etter minusoperatøren, bruk den andre datoen som skal trekkes fra.

>> velg date_part ('år', '2021/04/01' :: dato) - date_part ('år', '1995/07/01' :: dato);

Den totale forskjellen på året er 26.

dagens forskjell

I motsetning til de forrige, brukte dette eksemplet tidsstempelet for å beregne dagene mellom to datoer med tiden.

>> Velg '2020-03-28 2:06:00' :: Timestamp-'2005-07-26 06:15:00' :: Timestamp;

Den resulterende verdien viser de totale dagene og også forskjellen i tid. Forskjellen mellom tiden beregnes når forskjellen mellom to dager er kjent gjennom tidsstempelene i form av dager. På den aktuelle dagen blir tiden beregnet. Denne beregningen gjøres i 24 timers format.

timer forskjell

For å bestemme forskjellen mellom timer, må vi beregne den gjennom datoer med tidsstempeltid. For å ta timer som en utdata, vil vi multiplisere verdien med 24 og legge til verdien med resulterende av alle beregninger.

>> velg dato_part ('dag', '2021-09-22 04:05' :: TIMESTAMP-'2000-09-2 03:14' :: TIMESTAMP) * 24+ DATE_PART ('Hour', '2020-07 -28 07:55 ':: tidsstempel-' 2020-07-28 08:05 ':: Timestamp);

Derfor viser resultatet verdien i timer.

Midt i måneden

Dette kan oppnås ved å trekke nummeret fra 17 tall
.

>> velg dato_trunc ('måned', nå ()) + '1 måned' :: intervall - '17 dager ':: intervall som midt_months;

Datediff ved hjelp av et bord i PostgreSql

Til nå har vi gjennomgått gjennom grunnleggende om databifferensiering og noen eksempler på daterte også. Men nå er denne delen på en eller annen måte omfattende, da den inkluderer involvering av tabellen i databasen.

Lag tabellen “Baby” ved hjelp av Create Command gitt. Tabellen inneholder dataene til et barn. Vi har tatt to datoer i form av Birth_Date og Discharge_date.

Etter å ha opprettet tabellen, sett inn dataene ved å bruke innsatsspørsmålet du kan se fra bildet som er festet her.

Når vi flytter tilbake til emnet, mens vi prøver å få forskjellen på datoer, vil vi beregne babyens alder ved å bruke en enkelt inngang 'Birth_date', kolonneverdi fra tabellen.

>> Velg ID, First_name, Last_name, Age (Birth_Date) fra Baby;

Denne spørringen vil opprette en annen kolonne, 'alder', for å beregne alderen ved å ta datoene for hvert barn. Alder er en innebygd beregningsmetode i PostgreSQL. Forskjellen beregnes fra gjeldende dato til alderen gitt i tabellen.

Beveger seg mot en annen lignende, men likevel annerledes når det gjelder å ta innspill for aldersfunksjonen. Her bruker vi både Birth_Date og Discharge_date som inngang. Alle andre ting forblir de samme i kommandoen

>> Velg ID, First_name, Last_name, Age (Discradate_Date, Birth_Date) fra Baby;

Du kan observere resultatet fra det gitte bildet.

Konklusjon

Datediff er en meningsfull måte å få historien til enhver oppgave eller en person. Den brukes ikke direkte, men har mange smaker å bruke med like alder, måneder, år og andre osv., å bli beregnet. Denne artikkelen kaster lys over hvert aspekt av datediff PostgreSQL.