I dette afsnit skal vi forstå, hvordan det fungerer PostgreSQL interval datatype, og vi ser også eksempler af Intervaldatatype. Og mest brugt Interval funktioner , for eksempel, NU(), TO_CHAR(), EXTRACT(), justify_days(), justify_hours(), justify_interval(). Det Input og output format for PostgreSQL-intervalværdier.
Hvad er PostgreSQL Interval Data Type?
I PostgreSQL er Interval er en anden type datatype, der bruges til at gemme og implementere tid i år, måneder, dage, timer, minutter, sekunder, osv. Og måneder og dage værdier er heltal værdier , hvorimod sekundets felt kan være brøkværdier.
PostgreSQL interval datatype værdi involverer 16 bytes lagerplads størrelse, som hjælper med at opbevare en periode med det acceptable interval fra - 178000000 år til 178000000 flere år.
hvilke måneder er der i 3. kvartal
Bemærk: Antallet af brøkcifre taget i det andet felt er kendt som præcisionen p.
Syntaks for PostgreSQL Interval datatype
Syntaksen for PostgreSQL Interval-datatypen er som følger:
@ interval [ fields ] [ (p) ]
I ovenstående syntaks har vi følgende parametre:
Parameter | Beskrivelse |
---|---|
felter | Feltparameteren bruges til at vise tiden. |
s | P bruges til at vise præcisionsværdi. |
@ | Vi kan ignorere @-parameteren, da det er en valgfri parameter. |
Lad os se et eksempel for vores bedre forståelse af, hvordan vi kan skrive intervalværdierne med @ parameter og uden @ parameter :
@interval '6 months before'; @interval '2 hours 30 minutes';
ELLER
interval '6 months before'; interval '2 hours 30 minutes';
Bemærk: Vi kan bruge begge ovenstående udsagn, da de svarer til hinanden. Endvidere kan en intervalværdi have en valgfri præcisionsværdi p med det tilladte område fra 0 til 6.
Eksempel på PostgreSQL Interval datatype
Lad os se et eksempel for at forstå, hvordan PostgreSQL Interval datatype arbejder.
I nedenstående eksempel vil vi forsøge at finde tidspunktet for 2 timer 30 minutter før, ved nuværende tidspunkt sidste år ; vi vil bruge følgende kommandoer:
SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year';
Produktion
Efter at have udført ovenstående kommando, får vi nedenstående output, som vises 2 timer 30 minutter før sidste år :
Vi har set det primære eksempel på intervaldatatype og forstår, hvordan den fungerer. Nu vil vi se input- og outputformatet for intervalværdier.
For det første vil vi forstå PostgreSQL-intervalværdi for inputformatet :
PostgreSQL Interval Input Format
I PostgreSQL har vi følgende udførlig syntaks, som hjælper os med at skrive intervalværdierne:
quantity unit [quantity unit...] [direction]
Vi har nedenstående parametre, som bruges i ovenstående syntaks:
Parameter | Beskrivelse |
---|---|
antal | EN antal er et tal, som også accepterer tegn som + eller - |
enhed | Det enhed kan være enhver årtusinde, århundrede, årti, år, måned, uge, dag, time, minut, sekund, millisekund, mikrosekund, eller forkortelse kan være følgende y, m, d osv. og flertalsformerne kan være måneder, dage , etc. |
retning | Det retning parameter kan være siden eller den tomme streng. |
Bemærk: Ovenstående syntaks bruges også til intervaloutputformatet og er kendt som postgres_verbose.
I nedenstående eksempel vil vi vise nogle intervalværdier, hvor vi bruger udførlig syntaks :
INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago';
ISO 8601 intervalformat
Udover den verbose syntaks ovenfor, at skrive intervalværdierne ved hjælp af ISO 8601-tid intervaller, giver PostgreSQL os de to måder, som er som følger:
Designatorformatet for ISO 8601 er som følger:
P quantity unit [ quantity unit ...] [ T [ quantity unit ...]]
I ovenstående format begynder den væsentlige intervalværdi med bogstavet P , og bogstavet T bruges til at definere tidsenhed .
Nedenstående tabel viser ISO 8601 interval enhedsforkortelser:
Forkortelse | Beskrivelse |
---|---|
OG | Flere år |
M | Måneder (for datodelen) |
I | Uger |
D | Dage |
H | Timer |
M | Referater (for tidsdelen) |
S | Sekunder |
Bemærk: M kan være måneder eller minutter baseret på, om det ser ud før eller efter bogstavet T.
Lad os se et eksempel på ISO 8601 betegnelser format for vores bedre forståelse:
Det ISO 8601 designatorformat kan skrives i intervallet af 5 år 4 måneder 3 dage 2 timer 1 minutter 1 sekund :
P5Y4M3DT2H1M1S
Og den alternative form for ISO 8601 er som vist nedenfor:
P [ years-months-days ] [ T hours:minutes:seconds ]
Og det begynder også med bogstavet P og bogstavet T, som opdeler tid og dato dele af intervalværdien.
For eksempel ISO 8601 alternativ form kan skrives til 5 år 4 måneder 3 dage 2 timer 1 minut 1 sekund, som vist nedenfor:
P0005-04-03T02:01:01
PostgreSQL interval outputformat
PostgreSQL-intervaloutputformatet for intervalværdier kan indstilles ved hjælp af SÆT intervalstil kommando, som vi kan se i nedenstående eksempel:
SET intervalstyle = 'iso_8601';
PostgreSQL indeholder fire forskellige outputformater, såsom:
Bemærk: For at formatere intervalværdierne bruger PostgreSQL som standard Postgres-stilen.
Lad os se et eksempel på vores bedre forståelse:
Nedenstående kommando bruges til at vise 5 år 4 måneder 3 dage 2 timer 1 minut 1 sekund i de fire forskellige outputformater:
Til ISO_8601-outputformat
I nedenstående kommando vil vi SÆT det intervalstil som iso_8601 for ovennævnte intervalværdi:
SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second';
Produktion
Efter at have udført ovenstående kommando, får vi nedenstående resultat, som repræsenterer iso_8601 interval output format:
Til postgres_verbose outputformat
I nedenstående kommando vil vi SÆT det intervalstil som postgres_verbose for ovennævnte intervalværdi:
SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Produktion
Vi får nedenstående resultat efter implementering af ovenstående kommando, som viser postgres_verbose interval output format:
de tidlige mukere
Til Postgres-outputformat
I nedenstående kommando vil vi SÆT det intervalstil som Postgres for ovennævnte intervalværdi:
SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Produktion
Vi får nedenstående resultat efter vellykket udførelse af ovenstående kommando, som viser Postgres interval output format:
Til SQL_standard outputformat
I nedenstående kommando vil vi SÆT det intervalstil som sql_standard for ovennævnte intervalværdi:
SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Produktion
Vi får nedenstående resultat efter at have udført ovenstående kommando, som repræsenterer sql_standard interval output format:
Ændring af PostgreSQL-intervallet til streng
Vi kan bruge TO_CHAR() funktion til at ændre en intervalværdi til en streng.
Syntaksen til at ændre PostgreSQL-intervallet til streng
TO_CHAR(interval,format)
Det TO_CHAR() funktion tager første udsagn som en intervalværdi og en anden som format og henter en streng, der viser intervallet i det bestemte format.
I eksemplet nedenfor vil vi bruge TO_CHAR()-funktionen, som konverterer PostgreSQL-intervallet til strengværdien:
SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' );
Produktion
Efter at have udført ovenstående kommando, får vi følgende resultat:
PostgreSQL Interval-relaterede operatører og funktioner
Interval operatører
Vi kan bruge følgende +, -, * osv. aritmetisk operator for at få intervalværdierne.
Lad os se nedenstående eksempel for bedre forståelse:
I den følgende kommando vil vi bruge aritmetisk operator (+) ved hjælp af PostgreSQL interval datatype:
SELECT INTERVAL '1h 50m' + INTERVAL '5m';
Produktion
Vi får nedenstående resultat ved implementering af ovenstående kommando, som vist nedenfor:
I den følgende kommando vil vi bruge aritmetisk operator (-) ved hjælp af PostgreSQL interval datatype:
SELECT INTERVAL '3h 50m' - INTERVAL '30m';
Produktion
Ved implementering af ovenstående kommando får vi følgende resultat:
arv java
I den følgende kommando vil vi bruge aritmetisk operator (*) ved hjælp af PostgreSQL interval datatype:
SELECT 400 * INTERVAL '5 minute';
Produktion
Ved implementering af ovenstående kommando får vi følgende resultat:
Udtræk data fra et PostgreSQL-interval
Vi kan bruge UDDRAG() funktion til at udtrække felterne fra en intervalværdi, f.eks. år, måned, dato osv .
Syntaksen til at udtrække data fra et PostgreSQL-interval
EXTRACT(field FROM interval)
I ovenstående syntaks kan vi bruge år, måned, dato, time, minutter osv., i feltparameteren.
Det uddrag funktion returnerer en værdi af typen dobbelt-præcision, hvis vi ønsker at udtrække fra intervallet.
I det følgende eksempel vil vi bruge UDDRAG() funktion til at hente dobbeltpræcisionsværdien.
SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' );
Produktion
Efter at have udført ovenstående kommando, får vi nedenstående output, som viser dato del for dobbelt-præcision værdier som vist nedenfor:
Justering af PostgreSQL-intervalværdier
Vi har to funktioner, retfærdig_dage og retfærdig_timer i PostgreSQL, som tillader os at ændre interval på 24 timer betragte som en dag og intervallet på 30 dage betragte som en måned .
Lad os se et eksempel for at forstå, hvordan vi justerer PostgreSQL-intervalværdierne:
I den følgende kommando vil vi bruge Funktionen justify_days og justify_hours:
SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours');
Produktion
Efter at have udført ovenstående kommando, vil vi få følgende resultat, som viser intervallet på 30 dage som en måned og interval på 24 timer som en dag :
Udover det er retfærdig_interval funktion regulerer intervalværdierne ved hjælp af retfærdig_dage og retfærdig_timer med tilføjede tegnændringer:
I det følgende eksempel vil vi bruge funktionen justifiy_interval med kommandoen SELECT:
SELECT justify_interval(interval '6 months -1 hour');
Produktion
Vi får følgende output efter implementering af ovenstående kommando:
Oversigt
I den PostgreSQL Interval datatype afsnit, har vi lært følgende emner:
- Det PostgreSQL intervaldata type bruges til at gemme og implementere en periode i år, måneder, dage, timer, minutter, sekunder.
- Vi brugte forskellige Interval funktioner , for eksempel, NU(), TO_CHAR(), for at forbedre intervalværdier fra den pågældende tabel.
- PostgreSQL-intervalværdierne har begge dele input og output intervalformat.
- Vi kan justere PostgreSQL-intervalværdierne ved hjælp af justify_days(), justify_hours, justify_interval() funktioner.
- Vi kan bruge UDDRAG() funktion til at udtrække intervalfeltværdierne.