logo

Interval PostgreSQL

En aquesta secció, entendrem el funcionament del Tipus de dades d'Interval PostgreSQL, i també ho veiem exemples del Tipus de dades d'interval. I sobretot utilitzat Interval funcions , per exemple, NOW(), TO_CHAR(), EXTRACT(), justificar_dies(), justificar_hores(), justificar_interval(). El Entrada i sortida format per als valors d'interval PostgreSQL.

Què és el tipus de dades d'interval PostgreSQL?

A PostgreSQL, el Interval és un altre tipus de tipus de dades que s'utilitza per emmagatzemar i desplegar el temps anys, mesos, dies, hores, minuts, segons, etc. I el mesos i dies els valors són valors enters , mentre que el camp del segon pot ser el valors de fraccions.

El valor del tipus de dades d'interval PostgreSQL implica Emmagatzematge de 16 bytes mida, que ajuda a emmagatzemar un període amb el rang acceptable de - 178000000 anys a 178000000 anys.

anotacions a Spring Boot

Nota: el nombre de dígits de fracció que es prenen al segon camp es coneix com a precisió p.

Sintaxi del tipus de dades PostgreSQL Interval

La sintaxi del tipus de dades d'Interval PostgreSQL és la següent:

 @ interval [ fields ] [ (p) ] 

A la sintaxi anterior, tenim els paràmetres següents:

Paràmetre Descripció
camps El paràmetre de camp s'utilitza per mostrar l'hora.
pàg P s'utilitza per mostrar el valor de precisió.
@ Podem ignorar el paràmetre @ ja que és un paràmetre opcional.

Vegem un exemple d'exemple per entendre millor com podem escriure els valors d'Interval amb paràmetre @ i sense paràmetre @ :

 @interval '6 months before'; @interval '2 hours 30 minutes'; 

O

 interval '6 months before'; interval '2 hours 30 minutes'; 

Nota: podem utilitzar les dues afirmacions anteriors tal com es corresponen. A més, un valor d'interval pot tenir un valor de precisió electiva p amb l'interval permès s'inicia de 0 a 6.

Exemple de tipus de dades PostgreSQL Interval

Vegem un exemple d'exemple per entendre com Tipus de dades d'Interval PostgreSQL obres.

En l'exemple següent, intentarem trobar l'hora de 2 hores 30 minuts abans, al època actual de l'any passat ; utilitzarem les ordres següents:

 SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year'; 

Sortida

Després d'executar l'ordre anterior, obtindrem la sortida següent, que es mostra 2 hores 30 minuts abans de l'any passat :

Interval PostgreSQL

Hem vist l'exemple principal del tipus de dades d'interval i entenem el funcionament. Ara, veurem el format d'entrada i sortida de valors d'interval.

En primer lloc, entendrem el Valor d'interval PostgreSQL per al format d'entrada :

Format d'entrada d'interval PostgreSQL

A PostgreSQL, tenim el següent sintaxi verbosa, que ens ajuda a escriure els valors d'interval:

 quantity unit [quantity unit...] [direction] 

Tenim els paràmetres següents, que s'utilitzen en la sintaxi anterior:

Paràmetre Descripció
quantitat A quantitat és un nombre, que també accepta signes com + o -
unitat El unitat pot ser qualsevol mil·lenni, segle, dècada, any, mes, setmana, dia, hora, minut, segon, mil·lisegon, microsegon, o l'abreviatura pot ser la següent y, m, d, etc. i les formes del plural poden ser el mesos, dies , etc.
direcció El direcció paràmetre pot ser ago o la cadena buida.

Nota: La sintaxi anterior també s'utilitza per al format de sortida d'interval i es coneix com a postgres_verbose.

A l'exemple següent, mostrarem alguns valors d'interval on utilitzem sintaxi verbosa :

 INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago'; 

El format d'interval ISO 8601

A més de la sintaxi detallada anterior, per escriure els valors d'interval amb l'ajuda de Temps ISO 8601 intervals, PostgreSQL ens ofereix les dues maneres, que són les següents:

    Format de designadors Format alternatiu

El format dels designadors per a la ISO 8601 és el següent:

 P quantity unit [ quantity unit ...] [ T [ quantity unit ...]] 

En el format anterior, el valor d'interval essencial comença amb lletra P , i la lletra T s'utilitza per definir el unitat d'hora del dia .

La taula següent mostra el Interval ISO 8601 abreviatures de les unitats:

Abreviatura Descripció
I Anys
M Mesos (per a la part de la data)
EN Setmanes
D Dies
H Hores
M Minutes (per a la part de temps)
S Segons

Nota: La M pot ser mesos o minuts segons si es veu abans o després de la lletra T.

Vegem-ne un exemple Designadors ISO 8601 format per a la nostra millor comprensió:

El Format de designadors ISO 8601 es pot escriure per a l'interval de 5 anys 4 mesos 3 dies 2 hores 1 minuts 1 segon :

 P5Y4M3DT2H1M1S 

I la forma alternativa de ISO 8601 és com es mostra a continuació:

 P [ years-months-days ] [ T hours:minutes:seconds ] 

I també comença amb el la lletra P i la lletra T, que divideix el hora i data parts del valor de l'interval.

Per exemple, el Forma alternativa ISO 8601 es pot escriure per a 5 anys 4 mesos 3 dies 2 hores 1 minut 1 segon, com es mostra a continuació:

 P0005-04-03T02:01:01 

Format de sortida d'interval PostgreSQL

El format de sortida de l'interval de PostgreSQL dels valors d'interval es pot establir amb l'ajuda de CONJUNT estil d'interval comanda, com podem veure a l'exemple següent:

 SET intervalstyle = 'iso_8601'; 

PostgreSQL conté quatre formats de sortida diferents, com ara:

    iso_8601 postgres_verbose Postgres sql estàndard

Nota: Per formatar els valors d'interval, PostgreSQL utilitza l'estil Postgres de manera predeterminada.

Vegem un exemple de la nostra millor comprensió:

L'ordre següent s'utilitza per mostrar el 5 anys 4 mesos 3 dies 2 hores 1 minut 1 segon en els quatre formats de sortida diferents:

Per al format de sortida ISO_8601

A l'ordre següent, ho farem CONJUNT el estil d'interval com iso_8601 per al valor d'interval esmentat anteriorment:

 SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second'; 

Sortida

Després d'executar l'ordre anterior, obtindrem el resultat següent, que representa el iso_8601 format de sortida d'interval:

Interval PostgreSQL

Per al format de sortida postgres_verbose

A l'ordre següent, ho farem CONJUNT el estil d'interval com postgres_verbose per al valor de l'interval esmentat anteriorment:

 SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Sortida

Tindrem el resultat següent després d'implementar l'ordre anterior, que mostra el postgres_verbose format de sortida d'interval:

git status -s
Interval PostgreSQL

Per al format de sortida de Postgres

A l'ordre següent, ho farem CONJUNT el estil d'interval com Postgres per al valor d'interval esmentat anteriorment:

 SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Sortida

Tindrem el resultat següent després d'executar correctament l'ordre anterior, que mostra el Postgres format de sortida d'interval:

Interval PostgreSQL

Per al format de sortida Sql_standard

A l'ordre següent, ho farem CONJUNT el estil d'interval com sql_standard per al valor d'interval esmentat anteriorment:

 SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second'; 

Sortida

Tindrem el resultat següent després d'executar correctament l'ordre anterior, que representa el sql_standard format de sortida d'interval:

Interval PostgreSQL

Modificació de l'interval PostgreSQL a cadena

Podem utilitzar el TO_CHAR() funció per modificar un valor d'interval a una cadena.

La sintaxi per modificar l'interval PostgreSQL a cadena

 TO_CHAR(interval,format) 

El Funció TO_CHAR(). pren el primera declaració com un valor d'interval i un altre com el format i recupera una cadena, mostrant l'interval en el format concret.

A l'exemple següent, utilitzarem la funció TO_CHAR(), que converteix l'interval PostgreSQL en el valor de cadena:

 SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' ); 

Sortida

Després d'executar correctament l'ordre anterior, obtindrem el resultat següent:

Interval PostgreSQL

Operadors i funcions relacionades amb l'interval de PostgreSQL

Operadors d'interval

Podem utilitzar el següent operador aritmètic +, -, *, etc per obtenir els valors dels intervals.

Vegem l'exemple següent per a una millor comprensió:

A la següent comanda, farem servir el operador aritmètic (+) amb l'ajuda del tipus de dades d'interval PostgreSQL:

 SELECT INTERVAL '1h 50m' + INTERVAL '5m'; 

Sortida

Tindrem el resultat següent en implementar l'ordre anterior, tal com es mostra a continuació:

Interval PostgreSQL

A la següent comanda, farem servir el operador aritmètic (-) amb l'ajuda del tipus de dades d'interval PostgreSQL:

 SELECT INTERVAL '3h 50m' - INTERVAL '30m'; 

Sortida

En implementar l'ordre anterior, obtindrem el resultat següent:

Interval PostgreSQL

A la següent comanda, farem servir el operador aritmètic (*) amb l'ajuda del tipus de dades d'interval PostgreSQL:

 SELECT 400 * INTERVAL '5 minute'; 

Sortida

En implementar l'ordre anterior, obtindrem el resultat següent:

Interval PostgreSQL

Extracció de dades d'un interval PostgreSQL

Podem utilitzar el EXTRAIG () funció per extreure els camps d'un valor d'interval, per exemple, any, mes, data, etc .

La sintaxi per extreure dades d'un interval PostgreSQL

 EXTRACT(field FROM interval) 

A la sintaxi anterior, podem utilitzar el any, mes, data, hora, minuts , etc., al paràmetre de camp.

El extracte La funció retorna un valor de tipus double-precision si volem extreure de l'interval.

En l'exemple següent, utilitzarem el EXTRAIG () funció per recuperar el valor de doble precisió.

 SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' ); 

Sortida

clau primària i clau composta en sql

Després d'executar correctament l'ordre anterior, obtindrem la sortida següent, que mostra el part de data per a la doble precisió valors com es mostra a continuació:

Interval PostgreSQL

Ajust dels valors d'interval PostgreSQL

Tenim dues funcions, justificar_dies i justificar_hores a PostgreSQL, que ens permet modificar el fitxer interval de 24 hores considerar com un dia i l'interval de 30 dies considerar com un mes .

Vegem un exemple per entendre com estem ajustant els valors d'interval PostgreSQL:

A la següent comanda, farem servir el Funció justify_days i justify_hours:

 SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours'); 

Sortida

Després d'executar l'ordre anterior, obtindrem el següent resultat, que mostra l'interval de 30 dies com un mes i la interval de 24 hores com un dia :

Interval PostgreSQL

A més d'això, el justificar_interval La funció regula els valors d'interval amb l'ajuda de justificar_dies i justificar_hores amb modificacions de signes afegits:

A l'exemple següent, utilitzarem la funció justifiy_interval amb l'ordre SELECT:

 SELECT justify_interval(interval '6 months -1 hour'); 

Sortida

Tindrem la següent sortida després d'implementar l'ordre anterior:

Interval PostgreSQL

Visió general

En el Tipus de dades d'Interval PostgreSQL secció, hem après els següents temes:

  • El Dades d'interval PostgreSQL tipus s'utilitza per emmagatzemar i desplegar un període en anys, mesos, dies, hores, minuts, segons.
  • Hem utilitzat diferents Funcions d'interval , per exemple, ARA(), TO_CHAR(), per millorar els valors d'interval de la taula particular.
  • Els valors de l'interval PostgreSQL tenen tots dos entrada i sortida format d'interval.
  • Podem ajustar els valors de l'interval PostgreSQL amb l'ajuda de Funcions justify_days(), justify_hours, justify_interval().
  • Podem utilitzar el EXTRAIG () funció per extreure els valors del camp d'interval.